System and method for managing cryptocurrency payments via the payment request API

ABSTRACT

Disclosed is an approach for processing cryptocurrency payments via a payment request application programming interface. A method includes receiving, from a site, at a browser and via the payment request application programming interface, a request associated with a potential purchase, wherein the request includes an identification of a cryptocurrency payment method accepted by the site and transmitting, to the site, from the browser and via the API, data indicating that a user of the browser can pay for the potential purchase via the cryptocurrency payment method accepted by the site. The method includes retrieving via the API cryptocurrency payment information for the potential purchase and populating a cryptocurrency wallet with the cryptocurrency payment information for automatic payment.

PRIORITY CLAIM

This application is a continuation-in-part of U.S. patent applicationSer. No. 15/678,664, filed Aug. 16, 2017, which is a continuation ofU.S. patent application Ser. No. 15/678,378, filed Aug. 16, 2017, whichis a continuation-in-part of U.S. Nonprovisional patent application Ser.No. 15/602,868, filed May 23, 2017, which is a continuation of U.S.Nonprovisional patent application Ser. No. 15/600,599, filed May 19,2017, which is a continuation of U.S. Nonprovisional patent applicationSer. No. 15/600,388, filed May 19, 2017, which is a continuation-in-partof U.S. Nonprovisional patent application Ser. No. 15/586,999, filed May4, 2017, which is a continuation-in-part of U.S. Nonprovisional patentapplication Ser. No. 15/269,451, filed Sep. 19, 2016, which is acontinuation of U.S. Nonprovisional patent application Ser. No.15/263,066, filed Sep. 12, 2016, which is a continuation of U.S.Nonprovisional patent application Ser. No. 15/018,954, filed Feb. 9,2016, which is a continuation of U.S. Nonprovisional patent applicationSer. No. 14/853,579, filed Sep. 14, 2015, now U.S. Pat. No. 9,396,491,Issued on Jul. 19, 2016, which is a continuation of U.S. Nonprovisionalpatent application Ser. No. 14/822,368, filed Aug. 10, 2015, now U.S.Pat. No. 9,292,871, Issued on Mar. 22, 2016, which is a continuation ofU.S. Nonprovisional patent application Ser. No. 14/672,876, filed Mar.30, 2015, now U.S. Pat. No. 9,361,638, Issued on Jun. 7, 2016, whichclaims priority to U.S. Provisional Patent Application No. 61/973,287,filed Apr. 1, 2014 and also is a continuation-in-part of U.S.Nonprovisional patent application Ser. No. 14/230,864, filed 31 Mar.2014, now U.S. Pat. No. 9,430,794, Issued on Aug. 30, 2016, and alsoclaims priority to U.S. Provisional Patent Application No. 61/972,843,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,834,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,848,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,865,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,879,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,861,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,878,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,892,filed Mar. 31, 2014, U.S. Provisional Patent Application No. 61/972,890,filed Mar. 31, 2014, the contents of each of which are hereinincorporated by reference in their entireties.

This application is a continuation-in-part of U.S. Nonprovisional patentapplication Ser. No. 15/263,057, filed Sep. 12, 2016, which is acontinuation of U.S. Nonprovisional patent application Ser. No.15/018,954, filed Feb. 9, 2016, which is a continuation of U.S.Nonprovisional patent application Ser. No. 14/853,579, filed Sep. 14,2015, now U.S. Pat. No. 9,396,491, Issued on Jul. 19, 2016, which is acontinuation of U.S. Nonprovisional patent application Ser. No.14/822,368, filed Aug. 10, 2015, now U.S. Pat. No. 9,292,871, Issued onMar. 22, 2016, which is a continuation of U.S. Nonprovisional patentapplication Ser. No. 14/672,876, filed Mar. 30, 2015, now U.S. Pat. No.9,361,638, Issued on Jun. 7, 2016, which claims priority to U.S.Provisional Patent Application No. 61/973,287, filed Apr. 1, 2014 andalso is a continuation-in-part of U.S. Nonprovisional patent applicationSer. No. 14/230,864, filed 31 Mar. 2014, now U.S. Pat. No. 9,430,794,Issued on Aug. 30, 2016, and also claims priority to U.S. ProvisionalPatent Application No. 61/972,843, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,834, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,848, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,865, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,879, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,861, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,878, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,892, filed Mar. 31, 2014, U.S. ProvisionalPatent Application No. 61/972,890, filed Mar. 31, 2014, the contents ofeach of which are herein incorporated by reference in their entireties.

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/475,578, filed Mar. 23, 2017, the contents of which are hereinincorporated by reference in their entireties.

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/450,900, filed Jan. 26, 2017, the contents of which are hereinincorporated by reference in their entireties.

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/399,761, filed Sep. 26, 2016, the contents of which are hereinincorporated by reference in their entireties.

This application claims priority to U.S. Provisional Patent ApplicationNo. 62/560,261, filed Sep. 19, 2017, the contents of which are hereinincorporated by reference in their entireties.

RELATED APPLICATIONS

This application is related to U.S. Nonprovisional patent applicationSer. No. 14/853,545, filed Sep. 14, 2015, now U.S. Pat. No. 9,373,138,Issued on Jun. 21, 2016, U.S. Nonprovisional patent application Ser. No.15/018,432, filed Feb. 8, 2016, now U.S. Pat. No. 9,449,338, Issued onSep. 20, 2016, U.S. Nonprovisional patent application Ser. No.15/018,457, filed Feb. 8, 2016, now U.S. Pat. No. 9,466,081, Issued onOct. 11, 2016, U.S. Nonprovisional patent application Ser. No.15/018,497, filed Feb. 8, 2016, now U.S. Pat. No. 9,436,957, Issued onSep. 6, 2016, U.S. Nonprovisional patent application Ser. No.15/018,514, filed Feb. 8, 2016, now U.S. Pat. No. 9,524,519, Issued onDec. 20, 2016, U.S. Nonprovisional patent application Ser. No.15/018,934, filed Feb. 9, 2016, U.S. Nonprovisional patent applicationSer. No. 15/018,923, filed Feb. 9, 2016, now U.S. Pat. No. 9,430,790,Issued on Aug. 30, 2016, and U.S. Nonprovisional patent application Ser.No. 15/018,939, filed Feb. 9, 2016, the contents of each of which areincorporated herein by reference in their entirety.

BACKGROUND 1. Technical Field

The present disclosure relates to various embodiments for a browser tomanage a payment process via a payment request API between the browserand a site that enables a user to purchase an item or make a payment tothe site using a cryptocurrency.

2. Introduction

This application addresses an issue with respect to on-line shopping. Inthe context of one-click purchasing options, Amazon.com was one of onlya few sites which enabled one-click simplified purchasing. Outside ofAmazon.com, across the rest of the Internet, purchasing concerns includecomplicated shopping cart models which require too much data from acustomer (payment account, address, name, etc.), particularly on amobile device. Complicated shopping cart models can cause potentialcustomers to abandon a cart or leave product specifications unselected,such as size or color for clothing, or amount of memory for anelectronic device. Other purchasing concerns can include negativereviews about a product, articles that reflect poorly on a merchant, ordistrust of a user in giving a merchant confidential credit cardinformation. Another concern can include resolving questions about apurchase prior to finalizing the purchase. Purchasing concerns of theuser can include anything related to a product, service, merchant or anyother topic.

An issue relates to the long-standing problem of requiring users toenter payment data such as credit card information and a user addresswhen making a purchase. For all merchants outside of Amazon.com, usersmust enter payment data which is cumbersome, tedious, slow and requirestoo many interactions by the user to be convenient. Further, individualwebsites provide varying types of input interfaces so there is noconsistency across the web. It has been estimated that over one trilliondollars of goods have been left in abandoned shopping carts because ofthese types of issues with the traditional checkout process.

SUMMARY

The present disclosure provides a number of innovations to address thevarious issues as set forth above. The solutions disclosed herein willprovide a streamlined and consistent approach to the payment process ina purchasing transaction that makes the process for any website similarto an Amazon.com-type one-click (or greatly reduced number ofinteractions) process. The main solutions disclosed herein relate to anew payment request API between a site and a browser which acts as anagent to manage the payment process. Another API is the payment handlerAPI which can be used to communicate between the browser and a web basedpayment service such as PayPal or a cryptocurrency. The focus of thisapplication will be on how these APIs will work in the context ofcryptocurrencies.

A first aspect is discussed from the standpoint of a device or a browserthat has been programmed with an application programming interface topresent a payment experience for a user that is similar to an Amazonone-click purchasing experience, without the need of manually enteringin payment information including cryptocurrency data into acryptocurrency wallet. A method includes receiving, from a site, at abrowser and via a browser payment request application programminginterface that defines a protocol for communicating data between thesite and the browser, a request associated with a potential purchase,wherein the request comprises an identification of a cryptocurrencypayment method accepted by the site, transmitting, to the site, from thebrowser and via the browser payment request application programminginterface, data indicating that a user of the browser can pay for thepotential purchase via the cryptocurrency payment method accepted by thesite and receiving, via a user interface associated with the browserpayment request application programming interface, a confirmation fromthe user to process the potential purchase using the cryptocurrencypayment method.

The method further includes receiving, based on the confirmation fromthe user and via the browser payment request application programminginterface, cryptocurrency payment information for the potential purchaseand populating a cryptocurrency wallet with the cryptocurrency paymentinformation to enable the cryptocurrency wallet to make a payment. Othersteps can include initiating, via the browser payment requestapplication programming interface, the cryptocurrency wallet.

The browser, acting as an agent between the cryptocurrency or wallet,the user, and the merchant site such that it's programming as well asthe programming of the site and the programming of the cryptocurrencywallet are modified so as to enable automatic or automated initiationand population of data fields and initiation of a cryptocurrencytransaction. The cryptocurrency payment information can include at leastone of a site address for receiving the payment, a private key of abuyer, a public key of a recipient, an email address, recipientidentification information, a payment amount, and a user comment. Anyother data necessary can be included for initiating the payment, therecipient cryptocurrency or wallet for receiving the payment. Thebrowser can act as the agent between any entity or wallet necessary toachieve a cryptocurrency payment. For example, having received theconfirmation from the user via a browser payment request applicationprogramming interface, the browser can receive, via the API, therecipient wallet identification data, the cryptocurrency amount, and caninitiate a buyer cryptocurrency wallet. The browser can utilize thatdata to populate the necessary fields of the buyer cryptocurrency orwallet and initiate a transaction on a Blockchain, which is a vastpublic ledger for recording cryptocurrency transactions. Depending onthe type of wallets used in the transaction, API can also communicatewith the site which can initiate the recipient cryptocurrency walletand, if necessary, interact with the recipient cryptocurrency wallet toreceive the payment. If necessary, a transaction identification can beutilized to coordinate the transfer of cryptocurrency.

The cryptocurrency wallet can include at least one of stored locally ona device that is running the browser and web-based. The basicinteractions disclosed herein will essentially be the same whether thewallet is stored locally or is web-based. When the cryptocurrency walletis web-based, the method can further include transmitting thecryptocurrency payment information to the cryptocurrency wallet via anapplication programming interface for processing the payment. This canbe the payment handler API, or any other API. The request can identify asupported payment method used by the site in addition to thecryptocurrency payment method. For example, the request may indicatethat the site accepts Bitcoin, Visa and Apple Pay.

Another aspect can include transmitting, from the site, to a browser andvia a browser payment request application programming interface thatdefines a protocol for communicating data between the site and thebrowser, a request associated with a potential purchase, wherein therequest comprises an identification of a cryptocurrency payment methodaccepted by the site, receiving, at the site, from the browser and viathe browser payment request application programming interface, dataindicating that a user of the browser can pay for the potential purchasevia the cryptocurrency payment method accepted by the site andtransmitting, based on a confirmation from the user to process thepotential purchase using the cryptocurrency payment method and via thebrowser payment request application programming interface,cryptocurrency payment information for use in populating acryptocurrency wallet for initiating a purchase from the site.

Receiving the cryptocurrency payment information further can includereceiving a cryptocurrency payment at a site cryptocurrency wallet fromthe cryptocurrency wallet. The cryptocurrency payment information caninclude at least one of data that identifies the site cryptocurrencywallet and an amount.

When the cryptocurrency payment method is selected by a user for apurchase, programming of the system or the method can perform anadditional step of generating a blended user interface via the browserpayment request application programming interface which blends a paymentinteraction interface and a cryptocurrency wallet interface for use bythe user to confirm the payment.

Another aspect relates to a method including receiving, from a site, ata browser and via a browser payment request application programminginterface that defines a protocol for communicating data between thesite and the browser, a request associated with a potential purchase,wherein the request comprises an identification of a cryptocurrencypayment method accepted by the site and transmitting, to the site, fromthe browser and via the browser payment request application programminginterface, data indicating that a user of the browser can pay for thepotential purchase via the cryptocurrency payment method accepted by thesite. This is a “canmakepayment” exchange in which the site and thebrowser determine the overlap between payment methods. In this example,a cryptocurrency is common to both the site and the browser/user. Themethod includes receiving, via a user interface associated with thebrowser payment request application programming interface, aconfirmation from the user to process the potential purchase using thecryptocurrency payment method and retrieving, based on the confirmationfrom the user and via the browser payment request applicationprogramming interface, cryptocurrency payment information for thepotential purchase. The retrieving can involve gathering the input tothe transaction which can include the buyer's private key, data aboutthe address of the person who transferred the cryptocurrency to thebuyer, the seller's public key, a password and/or any other data forprocessing the cryptocurrency transaction. The cryptocurrency wallet canbe local to the device or web-based. Such wallets in one aspect areregistered with the browser, like any other payment method, such thatthey are usable and the necessary data for the transaction can beprovided to the browser as the agent managing the transaction. Themethod includes, in one aspect, transmitting from the browser and viathe browser payment request application programming interface, thecryptocurrency payment information.

The request can further be associated with a user-initiated actionindicating an intent by a user to make a purchase. Transmitting thecryptocurrency payment information to the site can enable the site toprocess a purchase or confirms to the site that a payment serviceprocessed the purchase. In this scenario, a web-based cryptocurrencywallet for the user may have provided the input data for the transactionon the blockchain outside of the payment request API.

The request can identify a supported payment method used by the site,such as Visa and Apple Pay, for example, in addition to thecryptocurrency payment method. The cryptocurrency payment informationcan include a private key that identifies a user cryptocurrency wallet.The wallet can be of any type and can be local or web-based, for examplethe wallet can be stored on a device operating the browser or aweb-based device separate from the device operating the browser.

Transmitting the cryptocurrency payment information further can includetransmitting a message signed with a private key to a cryptocurrencynetwork for verification. The message further can include an amount ofcryptocurrency and a site address for receiving the amount ofcryptocurrency. The amount can be obtained through data transmittedthrough the browser payment request API. In some cases, a conversionfrom dollars to Bitcoin, for example, (or other cryptocurrency) may benecessary by the site or a third party.

The message can further include a record of a cryptocurrency addressused to send cryptocurrency to the user cryptocurrency wallet. Thecryptocurrency payment information can be stored at the browser,accessed by the browser from a separate entity, or delivered to the sitefrom a third party as instructed by the browser.

In another aspect, the method can include processing from the sitestandpoint and include transmitting, from a site, to a browser and via abrowser payment request application programming interface that defines aprotocol for communicating data between the site and the browser, arequest associated with a potential purchase, wherein the requestcomprises an identification of a cryptocurrency payment method acceptedby the site and receiving, at the site, from the browser and via thebrowser payment request application programming interface, dataindicating that a user of the browser can pay for the potential purchasevia the cryptocurrency payment method accepted by the site. The methodcan further include transmitting, based on a confirmation from the userto process the potential purchase using the cryptocurrency paymentmethod and via the browser payment request application programminginterface, cryptocurrency payment information for the potentialpurchase. Receiving the cryptocurrency payment information further caninclude receiving a cryptocurrency payment at a site cryptocurrencywallet from a user cryptocurrency wallet. The cryptocurrency paymentinformation can include a private key that identifies a usercryptocurrency wallet. The user cryptocurrency wallet can also be storedon one of a device operating the browser or a web-based device separatefrom the device operating the browser.

One solution disclosed herein focuses on how users can choose from amonga number of different payment methods when making a purchase. Usersoften have different accounts, credit cards, debit cards,cryptocurrencies, Paypal or other web based payment applications. Thissolution focuses on how to manage multiple payment accounts in a browserAPI context. The method includes, in this aspect, receiving, at abrowser and via a browser payment request application programminginterface that defines a protocol for communicating information aboutpurchases between a site and the browser, a payment request having dataassociated with a purchase of a product from the site for a user,presenting via the browser or a browser interface, a choice between afirst payment method and a second payment method for purchasing theproduct, wherein the first payment method and the second payment methodeach include or require one of payment data stored on a user device,payment data stored on a network server, and a payment service. Itincludes receiving a selection of a payment method from the user of oneof the first payment method and the second payment method to yield aselected payment method and, based on the selected payment method, andin response to the payment request, transmitting, from the browser andvia the browser payment request application programming interface, dataassociated with the selected payment method to the site. This method isfrom the standpoint of the browser. The concept can also be covered fromthe standpoint of the merchant site as well as from the standpoint of apayment processor.

Another solution relates to a credential management applicationprogramming interface which enables a site to request via the API userlogin credentials from either a browser or a network based entity forsimplifying the login process for the user. A method in this regardincludes receiving, from a site, at a browser and via a browsercredential management application programming interface that defines aprotocol for communicating data between the site and the browser forenabling a user to login to the site, a request associated with a logincredential required for the site, retrieving, based on the request, userdata (from the browser and/or from a network entity) and transmitting,to the site, from the browser and via the browser credential managementapplication programming interface, a response to the request. Theresponse can include login credentials for the user, such as one or moreof a username, a password, a code, a biometric such as a fingerprintiris scan, or facial recognition, or any combination of this data whichcan enable the site to log the user in without the user needing tomanually type in or enter such data. Embodiments of this credentialmanagement API can be from the standpoint of the browser, from thestandpoint of the site, or the standpoint of a network entity whichstores the user data. One or more APIs could also be used in combinationto ultimately achieve the passing of login credentials to the site viaan API. Logging in can relate to logging into a cryptocurrency wallet orneeding to log in to sign a message that will transfer cryptocurrency.

Another solution disclosed herein relates to how to manage a paymentprocess with a payment processor through multiple applicationprogramming interfaces with the browser. A method in this regardincludes receiving input from a user indicating a desire to purchase aproduct from a merchant site (the input can be a click, voice input aspart of a dialog, virtual reality input, or any kind of input) andreceiving, based on the input, at a browser and via a first applicationprogramming interface that defines a first protocol between the browserand the merchant site, a payment request from the merchant site forpayment data of the user for purchasing the product.

In response to the payment request, the method includes communicating,from the browser and via a second application programming interface thatdefines a second protocol for communicating payment information betweenthe browser and a payment service, a payment request event to thepayment service, wherein the payment service can process a payment forthe product based on the payment request event. The method includesreceiving, at the browser and from the payment service and via thesecond application programming interface, a confirmation of the paymentfor the product and communicating, from the browser and via the firstapplication programming interface to the merchant site, the confirmationof the payment for the product. The payment service can be a servicelike Paypal, a cryptocurrency or the like. The approach enables a commoninterface between the merchant and a payment service utilizing thebrowser and several APIs in a new manner.

The first application programming interface can define the firstprotocol for communicating at least one of payment data and address databetween the browser and the merchant site. The second applicationprogramming interface can include the second protocol for communicatingdata associated with payment of the product between the browser and thepayment service. The payment request further can include a request foran address of the user. Thus, the payment could be performed by thepayment service provider and the address could be provided by thebrowser through the first API.

The method can further include, based on the payment request,transmitting from the browser and through the first applicationprogramming interface, the address of the user to the merchant site foruse in delivering the product to the user. The first applicationprogramming interface can include a browser payment request applicationprogramming interface in that it involves a request from the merchantsite for payment data and/or other data about the user. The secondapplication programming interface can be called a payment handlerapplication programming interface in that it more specifically involvespayment handling by the payment processor. This aspect of the disclosurecan also have embodiments from the standpoint of the merchant as well asfrom the standpoint of the payment processor.

Another solution disclosed herein relates to how to provide a productpurchasing experience within a spoken dialog. An example method in thisregard includes receiving, via a messenger application and as part of adialog between a merchant site and a user, a spoken input from the user,presenting user text associated with the spoken input in the messengerapplication, responding, as part of the dialog and by the merchant site,to the spoken input with a spoken response, presenting response textassociated with the spoken response in the messenger application, andidentifying a product the user desires to purchase from the merchantsite via the dialog. Based on a spoken buy interaction by the user viathe dialog, the method includes receiving, at a browser and via abrowser payment request application programming interface, a paymentrequest, from the merchant site, for payment data of the user forpurchasing the product and, in response to the payment request,communicating, from the browser and via the browser payment requestapplication programming interface, payment information for the user,wherein the merchant site uses the payment information to process apayment for the product.

The method can include receiving, at the browser and via the browserpayment request application programming interface, an address request,from the merchant site, for address data for the user. In response tothe address request, the method can include communicating, from thebrowser and via the browser payment request application programminginterface, the address data for the user to the merchant site. Themerchant site processes the payment using the payment information. Thepayment information can include payment account information for the userthat the merchant site can use to process the payment for the product. Abrowser can present the messenger application to the user. The dialogcould also be a text dialog as well and not a spoken dialog. The methodcould also be claimed from the standpoint of the merchant site.

Other innovations include transitioning techniques from a search fieldto a destination site using a number of solutions, applying a browserpayment request API to turn any website into a “one-click” or fewerclick purchasing experience than was traditionally available, as well asother social media innovations address the various issues set forthabove, and other issues as well.

The present disclosure addresses other needs identified above as well.For example, the need to improve the purchasing experience of users onthe Internet is addressed herein. Form filling shopping cart purchasingmodels require too much user input and interaction and reduce the numberof users actually completing the process to make a purchase. Disclosedis an updated browser having a browser payment request applicationprogramming interface for communicating payment data between the browserand a site for processing payments of purchases and to reduce the numberof user interactions needed for a purchasing process. The methodincludes receiving, via the user interface, an interaction by a userwith an object associated with a site, the interaction indicating a userintent to make a purchase. The method includes receiving, based on theinteraction and via an application programming interface, a request fromthe site for payment data in connection with the purchase andtransmitting, to the site and via the application programming interface,the payment data. The payment data confirms the purchase or can be usedto process or deliver a product associated with the purchase. Thepayment data can include any type of payment data necessary forprocessing the purchase. It can include an account number, a private keyfor cryptocurrency payments, a password, a tokenized version of paymentdata, address information, preferences, shipping choices, other userdata, and so forth.

Yet another aspect relates to processing from the browser or searchengine side when communicating payment data via an API to a merchantsite. The method includes presenting, on a graphical user interface, apresentation, the presentation being received from a site over anetwork. It includes receiving, via the user interface and from a user,an interaction with the presentation and receiving, via an applicationprogramming interface, a request from the site for payment account datafor the user. The method also includes transmitting, to the site and viathe application programming interface, the payment account data, suchthat the payment account data can be used to populate payment fields forpayment processing on the site, or perform more advanced processingusing the payment data to simplify the user interaction. Thepresentation can include one of a product for purchase and a service.The method can include enabling the site to process a payment for anitem or a service using the payment account data for the user to makethe payment. The graphical user interface can be associated with abrowser or an application. In one aspect, the API communicates databetween the site (merchant site) and a browser that can store thepayment account data for the user.

The method can further include updating the presentation to include abuy option which is configured, based on a confirmation from the user,to enable the site to utilize the payment account data received throughthe API to process a purchase of an item or service without a need ofthe user to fill in the payment fields on the site. The browser or otheragent communicating via the API can also provide the graphic for a “paynow” type of button to integrate with site graphics. The payment accountdata can further include one or more of address data for the user, apayment account number, an expiration date, a security code, acardholder name and shipping instructions for the user. In one aspect,the payment account data can include multiple methods of payment such asmultiple credit cards, for example.

The request through the API can further include one or more of asupported payment method for the site, a total amount value for apurchase, items that may be displayed for purchase, shipping options,payment modifiers, a request for a user email address, a request for auser's phone number, a request for a private key of a cryptocurrencywallet and a request to update information. A user agent similar to orseparate from the browser can communicate the payment account databetween the application programming interface and the site.

In another aspect, the method includes the concept from the standpointof the site. The method in this context includes transmitting, forviewing on a graphical user interface, a presentation, the presentationbeing transmitted from a site over a network to a device having thegraphical user interface, and receiving, via the network and from auser, an interaction with the presentation. The method includestransmitting, to an application programming interface, a request forpayment account data of the user, and receiving, at the site and via theapplication programming interface, the payment account data andpopulating payment data fields associated with a payment process withthe payment account data for the user to yield populated payment datafields. The site can process a payment for an item or a service usingthe payment account data for the user. The payment data can be atokenized packet of data for a one-time payment process. The paymentdata could be a private key, tokenized or not, for use in processing acryptocurrency payment on the blockchain. The API can coordinate databetween the browser and the site such that the browser stores thepayment account data for the user. Upon receiving a confirmation fromthe user to make a purchase of an item or service associated with thepresentation, the method can include processing a payment for theproduct using the received data.

The method can further include, upon receiving the payment account data,updating the presentation to include a buy option which is configured,based on a confirmation from the user, to enable the site to utilize thepayment account data to process a purchase of a product or servicewithout a need of the user to manually fill in the payment data fieldson the site. The payment account data can further include one or more ofa token, a private key of the user's cryptocurrency wallet, a password,an address data for the user, a payment account number, an expirationdate, a security code, a cardholder name and shipping instructions forthe user. Fingerprint authorization or other biometric authorizationsuch as an iris scan or facial recognition can occur as well. Thepresentation can further include one or more of a supported paymentmethod for the site, a total amount value for a purchase, items that maybe displayed for purchase, shipping options, payment modifiers, arequest for a user email address, a request for a user's phone number,and a request to update information. A user agent can also communicatethe payment account data between the application programming interfaceand the site. In another aspect, a method includes presenting, on agraphical user interface, a presentation, the presentation beingreceived from a site over a network and receiving, via the userinterface and from a user, an interaction with the presentation Themethod includes receiving, via an application programming interface, arequest from the site for payment account data for the user,autopopulating a payment field associated with the presentation with thepayment account data and transmitting, to the site and via theapplication programming interface, the payment account data. The sitecan process a payment based on the payment account data for the user.The method can also include receiving a confirmation from the user of apurchase after the payment field is autopopulated.

The present disclosure also addresses the problem of managing a useraccount of on-line purchases, such as is offered by amazon.com, butexpanded to correlate purchases across multiple different venues such asgoogle.com, facebook.com, amazon.com, and so forth. Disclosed is an APIthat is designed to communicate information to and from multipledifferent types of sites that currently manage purchases individually.For example, the API can receive conversion data about purchases madethrough the Google Buy Button (Purchases on Google), the Facebook BuyButton, the Pinterest Buy Button, Amazon.com purchases, and so forth. Apurchase management engine receives the various pieces of data andcorrelates the data into a single user account that spans multiplepurchasing platforms. The account can be stored on a blockchain as well.The present approach differs from the amazon.com user account because itis maintained only for purchases made at amazon.com and not forpurchases from different types of sites such as google.com orfacebook.com. However, the correlated data could be transmitted to aninterface like amazon.com such that in addition to all of the advantagesof managing purchases on amazon.com, the user account of amazon.com canalso be populated with google.com, facebook.com, instagram.com,pinterest.com, youtube.com, and other site purchases. The completecorrelated data can actually be presented at any of the traditionalnon-merchant sites, individual merchant sites (like walmart.com orwidgets.com) as well as amazon.com. The way the correlated data ispresented is user-definable as it is with amazon.com with addition offeatures that are not contemplated by amazon.com, such as which buybutton site the purchase was made from. Thus, the user interface couldpresent products purchased from google.com, followed by facebook.com,followed by amazon.com.

Thus, the concepts disclosed herein expand upon the “micro-moments” frominvolving just the moment when someone wants to make a purchase, toother purchasing related options. The micro-moment a user may experiencecan perhaps be a desire to cancel a purchase made the previous day, orto buy another product like the one purchase yesterday. In this manner,through a drop down menu on a site, or positioned near a buy option, thesystem can present a “user account” access option which enables the userto access their account and make further changes/modifications. Becauseof the correlation and the API, the modifications can easily be madeacross all platforms. Thus, on one user interface, the user could buy anextra widget in addition to the one purchased via Google's Buy Buttonthe day before, as well as cancel the purchase made that morning viaFacebook.

Because the purchases described above are often coordinated betweenmultiple entities such as a site (Google, Facebook, Apple Pay, AndroidPay, Samsung Pay, etc.), the merchant (which may or may not handle thepayment but typically handles the delivery), a bitcoin or cryptocurrencywallet either stored on a device or held at a network based location,and a delivery service (Federal Express, UPS, etc.), the present APIwill interface with multiple different sites and service providers asnecessary to coordinate whatever action is necessary. Thus, one or moreof the following actions can be divided up on either side of the APIbetween the purchase management engine, a merchant, amazon.com (or thelike), and the buy button site (Google, Facebook, Instagram, etc.): (1)processing an additional purchase; (2) canceling a purchase; (3)implementing a buy it again choice; (4) providing a return of theproduct; (5); writing a product review; (6); tracking a package; (7)altering a delivery schedule; (8) changing a payment method; (9) lodginga complaint; and (10) transmitting a notification of any action taken toone or more of the buyer, a recipient, a merchant, a delivery provider,a buy button site, and more.

The product management engine can coordinate the various actionsnecessary across the different platforms. Thus, if a user, via aFacebook site for example, cancels a purchase, the product deliveryengine can coordinate the various actions such as notifying themerchant, the site, the delivery service, and so forth, to implement thecancellation.

In another aspect, knowledge and data that is gained through managementof products via the product management engine can be provided further toadvertisers who can then more intelligently provide advertisements orbuy button options through any of the sites. Additionally, data can beshared with friends or associates through social networking sites if auser permits it. For example, data about what size or color of an item aparticular person usually purchases for themselves can be shared forfuture gifting opportunities. Friends or associates on social networkscan use the product management engine to determine if a user haspurchased a particular item in the past to avoid duplicating an item asa gift. For example, a user can query the engine to determine if hisfriend Bob has purchased any Lego sets in the past year. A decision topurchase a Lego set as a gift for Bob can be made after the queryresults are received.

The “account button” from which a user can access the user account canalso be presented creatively to the user. For example, when a buy buttonis presented as disclosed herein, a “manage purchases” or the like canbe presented as well. Such a button can also be offered one or morelayers into the process. For example, often when a buy option isinteracted with, the user is presented with more details about aproduct, information about the merchant selling the product, and anopportunity to buy through the buy option (using purchase accountinformation stored elsewhere from the merchant site as disclosedherein). At this stage (after interacting the buy option but beforeactually converting into a complete purchase), the “manage purchases”option can be presented as the user is known to be in the mode ofconsidering a purchase and they may want to check/manage their purchasehistory. Information from their purchase account can also be used toperhaps tailor the advertisements or presentation of the response totheir interaction with the buy option.

Yet another innovation includes applying the browser payment request APIin other contexts such as virtual reality, media viewing, and so forth.Any user interface can be considered a browser and the basic structureand protocols of the browser payment request API can also be implementedin other scenarios such that one click purchasing opportunities can bemade available.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates a system architecture;

FIG. 1B illustrates the basic process of providing bitcoin blockchaintransactions;

FIG. 2 illustrates an example architecture for use of the browserPayment Request API and the Payment Handler API;

FIG. 3A illustrates a payment request API user interface;

FIG. 3B illustrates a partial user interface overlay on top of amerchant site;

FIG. 4 illustrates an example cryptocurrency wallet interface;

FIG. 5 illustrates another cryptocurrency wallet interface;

FIG. 6 illustrates a blended cryptocurrency and Payment Request APIinterface;

FIG. 7 illustrates another payment request API interface for acryptocurrency payment;

FIG. 8 illustrates a basic cryptocurrency payment method with a buyerwallet and a seller wallet;

FIG. 9 illustrates an example method;

FIG. 10 illustrates another example method;

FIG. 11 illustrates signal processing with the payment request API;

FIG. 12 illustrates further signal processing with the payment requestAPI;

FIG. 13 illustrates signal processing for a cryptocurrency payment;

FIG. 14 illustrates another method example;

FIG. 15 illustrates another method example;

FIG. 16 illustrates another method example;

FIG. 17 illustrates another method example;

FIG. 18 illustrates another method example;

FIG. 19 illustrates another method example;

FIG. 20 illustrates another method example;

FIG. 21 illustrates another method example;

FIG. 22 illustrates the interaction amongst sites and the API;

FIG. 23 illustrates a smart contract application in connection with thepayment request API; and

FIG. 24 illustrates a method embodiment.

DETAILED DESCRIPTION

The following disclosure describes a number of different innovationsrelated to simplifying online purchases, providing a browser paymentrequest application programming interface for improved purchasingexperiences, enabling cryptocurrency payment via the payment requestAPI, enabling smart contracts to handle in a trustless environmentpurchasing transactions using the payment request API, and improvingsocial media networks, as well as other innovations. Accordingly, thedisclosure will step from one innovation to another and any individualfeature can be utilized in connection with any other feature or example.

The following is an example of a Bitcoin transaction. Assume Alice (thebuyer) wants to use her Bitcoin to buy pizza from Bob (the seller). Shewould send him, through her bitcoin wallet, her private “key,” a privatesequence of letters and numbers, which contains her source transactionof the coins, an amount needs to be identified, and she needs Bob'sdigital wallet address. Bob's “address” would be another public sequenceof letters and numbers. The transaction thus has three pieces ofinformation: An input, which is a record of which bitcoin address wasused to send the bitcoins to Alice in the first place (she received themfrom her friend, Eve); the amount, which is the amount of bitcoins thatAlice is sending to Bob; and an output, which is Bob's bitcoin address.The browser or agent disclosed herein will obtain the necessaryinformation via the browser payment request API from the merchant siteand/or the buyer in order to enable a transaction utilizing the threepieces of information necessary for a cryptocurrency transaction. Forexample, if the user selects bitcoin to make a payment on merchants.com,within a browser payment request API interface, the interface canconvert from showing the amount of the purchase in dollars to the amountof the purchase in bitcoin. When the user confirms that they want tomake the payment, the input data, which is the record of which bitcoinaddress was used to send the bitcoins to the buyer in the first place,the amount of bitcoins which is available via the API, the seller'sbitcoin address or the source address, and/or the buyer public key orwallet address can all be wrapped up to and into a single data packet ortokenized data packet for processing on the peer to peer network.

In another aspect, the browser API may only provide the buyers inputdata such as their private key, the data which contains the sourcetransaction of the coins for the buyer, and/or any other data throughthe API. The merchant has the amount already and their own public keyaddress for receiving the electronic coins. The merchant can thenprovide the package of data to the peer-to-peer network for processing.Of course notifications will have to be customized to the buyer formonitoring the progress of the transaction. In another aspect, the buyerwallet can be initiated via instructions from the browser acting as theagent in the process. The browser API can provide the merchant publickey to the buyer wallet, and the amount of cryptocurrency, and cause thewallet to carry out the transaction. Rather than the buyer needing tomanually open their wallet, enter in the public key of the merchantwallet, entering the amount, and so forth, the wallet would be modifiedso as to be enabled to communicate with the browser via an API, whichcan communicate both data and functional instructions to the wallet. Inthis manner, the browser API can be utilized to enable a one click typepurchasing transaction for crypto currencies.

Bob can scan the “key” with his smartphone to decode it. At the sametime, Alice's transaction is broadcast to all the other networkparticipants (called “nodes”) on the ledger, and, approximately, tenminutes later, is confirmed, through a process of certain technical andbusiness rules called “mining.” This “mining” process gives Bob a scoreto know whether or not to proceed with Alice's transaction.

Further to the discussion above, to send bitcoins, the buyer needs twothings: a bitcoin address and a private key. A bitcoin address isgenerated randomly, and is simply a sequence of letters and numbers. Theprivate key is another sequence of letters and numbers, but unlike abitcoin address, this is kept secret. Think of a bitcoin address as asafe deposit box with a glass front. Everyone knows what is in it, butonly the private key can unlock it to take things out or put things in.When Alice wants to send the bitcoins to Bob, she uses her private keyto sign a message with the input (the source transaction(s) of thecoins), amount, and output (Bob's address). Because the transaction mustbe verified by miners, the parties to the purchase are sometimes forcedto wait until they have finished mining. The bitcoin protocol is set sothat each block takes roughly 10 minutes to mine. Some merchants maymake a customer wait until this block has been confirmed, meaning thatthe customer may have to make a cup of coffee and come back again in ashort while before he can download the digital goods or take advantageof the paid service.

In the context of the payment request API, the user is not likely towant to sit and wait for ten minutes for the transaction to process.Thus, a notice is likely going to be provided which indicates that atext, or an email, or another user interface will be presented to theuser at the completion of the mining process for that transaction. Thebrowser of course can maintain this contact information and can receivethe notification of the completion of the mining process and initiate acommunication to the user that the mining process is complete. In thisway, the browser has additional functionality built in, while itmaintains the position of being the agent or primary managing entity forthe transactions.

On the other hand, some merchants won't make the buyer wait until thetransaction has been confirmed. They effectively take a chance on thebuyer, assuming that the buyer won't try and spend the same bitcoinssomewhere else before the transaction confirms. This often happens forlow value transactions, where the risk of fraud isn't as great. The APIdisclosed herein could also manage this waiting process by including atimer or a block that does not let two bitcoin transactions to occurback to back or until the confirmation is received via the API to enableanother bitcoin transaction.

Because bitcoins exist only as records of transactions, a person can endup with many different transactions tied to a particular bitcoinaddress. Perhaps Jane sent Alice two bitcoins, Philip sent her threebitcoins and Eve sent her a single bitcoin, all as separate transactionsat separate times. These are not automatically combined in Alice'swallet to make one file containing six bitcoins. They simply sit thereas different transaction records.

When Alice wants to send bitcoins to Bob, her wallet will try to usetransaction records with different amounts that add up to the number ofbitcoins that she wants to send Bob. The chances are that when Alicewants to send bitcoins to Bob, she won't have exactly the right numberof bitcoins from other transactions. Perhaps she only wants to send 1.5BTC to Bob.

None of the transactions that she has in her bitcoin address are forthat amount, and none of them add up to that amount when combined. Alicecan't just split a transaction into smaller amounts. She can only spendthe whole output of a transaction, rather than breaking it up intosmaller amounts. Instead, she will have to send one of the incomingtransactions, and then the rest of the bitcoins will be returned to heras change.

Alice sends the two bitcoins that she received from Jane to Bob. Jane isthe input, and Bob is the output. But the amount is only 1.5 BTC,because that is all she wants to send. So, her wallet automaticallycreates two outputs for her transaction: 1.5 BTC to Bob, and 0.5 BTC toa new address, which it created for Alice to hold her change from Bob.

As we shall see below, implementing a cryptocurrency payment processinto the payment request API will involve converting the data to thecryptocurrency amounts and making adjustments such that the data passthrough the API or managed to be passed to a different location willencompass the input, the amount and the output data that can bebroadcast to the ledger for confirmation of the transaction. Built intothe system could be a later confirmation (it is not real-time as in anormal payment process that can be confirmed through the API interface)to a cell phone number, email address or other user interface that thescore received by Bob confirms the transaction. The API can also havebuilt into it the exchange of addresses, private keys, or any other datanecessary to make a payment in bitcoin and process the “change” from themerchant to the buyer with the new address for Alice as noted above. Inthis regard, the process would work essentially in reverse and thebrowser payment request API would be utilized to provide the necessaryinput, amount, and output data flowing from the merchant (Bob) to thebuyer (Alice) such that the secondary change transaction could alsooccur. In this case, Alice's wallet identification would be received viathe API, an amount would be provided, and the information delivered tothe merchant wallet with instructions to populate the data fields of thewallet and carry out the transaction of transferring the change amountfrom the merchant wallet to Alice's wallet.

Mining, or processing, keeps the Bitcoin process secure bychronologically adding new transactions (or blocks) to the chain andkeeping them in the queue. Blocks are chopped off as each transaction isfinalized, codes decoded, and bitcoins passed or exchanged.

Having provided a basic introduction, this disclosure now turns to ageneral example system shall be disclosed in FIG. 1A, which can providesome basic hardware components making up a server, node or othercomputer system. FIG. 1A illustrates a computing system architecture 100wherein the components of the system are in electrical communicationwith each other using a connector 105. Exemplary system 100 includes aprocessing unit (CPU or processor) 110 and a system connector 105 thatcouples various system components including the system memory 115, suchas read only memory (ROM) 120 and random access memory (RAM) 125, to theprocessor 110. The system 100 can include a cache of high-speed memoryconnected directly with, in close proximity to, or integrated as part ofthe processor 110. The system 100 can copy data from the memory 115and/or the storage device 130 to the cache 112 for quick access by theprocessor 110. In this way, the cache can provide a performance boostthat avoids processor 110 delays while waiting for data. These and othermodules/services can control or be configured to control the processor110 to perform various actions. Other system memory 115 may be availablefor use as well. The memory 115 can include multiple different types ofmemory with different performance characteristics. The processor 110 caninclude any general purpose processor and a hardware module or softwaremodule/service, such as service 1 132, service 2 134, and service 3 136stored in storage device 130, configured to control the processor 110 aswell as a special-purpose processor where software instructions areincorporated into the actual processor design. The processor 110 mayessentially be a completely self-contained computing system, containingmultiple cores or processors, a bus (connector), memory controller,cache, etc. A multi-core processor may be symmetric or asymmetric.

To enable user interaction with the computing device 100, an inputdevice 145 can represent any number of input mechanisms, such as amicrophone for speech, a touch-sensitive screen for gesture or graphicalinput, keyboard, mouse, motion input, speech and so forth. An outputdevice 135 can also be one or more of a number of output mechanismsknown to those of skill in the art. In some instances, multimodalsystems can enable a user to provide multiple types of input tocommunicate with the computing device 100. The communications interface140 can generally govern and manage the user input and system output.There is no restriction on operating on any particular hardwarearrangement and therefore the basic features here may easily besubstituted for improved hardware or firmware arrangements as they aredeveloped.

Storage device 130 is a non-volatile memory and can be a hard disk orother types of computer readable media which can store data that areaccessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,random access memories (RAMs) 125, read only memory (ROM) 120, andhybrids thereof.

The storage device 130 can include software services 132, 134, 136 forcontrolling the processor 110. Other hardware or softwaremodules/services are contemplated. The storage device 130 can beconnected to the system connector 105. In one aspect, a hardware modulethat performs a particular function can include the software componentstored in a computer-readable medium in connection with the necessaryhardware components, such as the processor 110, connector 105, display135, and so forth, to carry out the function.

Variations on FIG. 1A include any cloud-based computing resources aswell as any virtualization processes of hardware components. Any computeenvironment can be utilized to implement the processes described herein.

Having introduced the basic computing components which can be applicableto embodiments associated with this disclosure, the disclosure now turnto FIG. 1B. The present disclosure focuses on the use of the paymentrequest API for a cryptocurrency, blockchain based transition. Adiscussion of these types of transactions follows. Reference to bitcoinwill be provided but the basic principles can apply to any currency suchas Ethereum, Dash, etc. Any currency in which transactions are stored ona blockchain via this process can apply.

As is shown in FIG. 1B, system 170 illustrates the transaction oftransferring one electronic coin to another person. The firsttransaction 172 illustrates Owner 1's public-key 178, a hash 180 andowner 0's signature 182. Each owner transfers the coin to the next bydigitally signing a hash of the previous transaction and the public keyof the next owner and adding these to the end of the coin. A payee canverify the signatures that verify the chain of ownership. Owner 1verifies their public key and signs the transaction with owner 1'sprivate key which becomes owner 1's signature as part of transaction174. Owner 2's public-key 184 is hashed 186 with data from the firsttransaction 172 and with the owner 1 signature 188.

The same process can be repeated again in transaction 176, such thatowner 2 can verify the transaction with their public key. 184 and signthe transaction using their private key. 198, yielding owner 2 signature194. Thus, utilizing owner 3's public-key 190, the hash 192, and owner2's signature 194, owner 3 can receive the electronic coin as part oftransaction 176.

Bitcoin works on a vast public ledger, also called a blockchain, whereall confirmed transactions are included as so-called ‘blocks.’ As eachblock enters the system, it is broadcast to the peer-to-peer computernetwork of users for validation. In this way, all users are aware ofeach transaction, which prevents stealing and double-spending, wheresomeone spends the same currency twice. The process also helpsblockchain users trust the system.

A proof of work algorithm is run on the peer-to-peer network to verifyeach transaction. The steps to run the network include, new transactionsare broadcast all nodes, each node collects new transactions into ablock, each node works on finding a difficult proof of work for itsblock, and when a node finds a proof of work, it broadcast the block toall nodes. Nodes accept the block only if all transactions in it arevalid and not already spent. Nodes express their acceptance of the blockby working on creating the next block in the chain, using the hash ofthe accepted block as the previous hash. In some cases, like withbitcoin, this process can take ten minutes. In other words, there islikely to be a period of time between submitting the transaction intothe peer to peer network and receiving a confirmation that it iscomplete. One aspect of this disclosure is how the browser paymentrequest API would manage this timeframe.

The unit of account of the bitcoin system is bitcoin (or ether forEthereum, etc.). As of 2014, symbols used to represent bitcoin are BTC,XBT, and others. Small amounts of bitcoin used as alternative units aremillibitcoin (mBTC), microbitcoin (μBTC, sometimes referred to as bit),and satoshi. Named in homage to bitcoin's creator, a satoshi is thesmallest amount within bitcoin representing 0.00000001 bitcoin, onehundred millionth of a bitcoin. A millibitcoin equals to 0.001 bitcoin,one thousandth of a bitcoin. One microbitcoin equals to 0.000001bitcoin, one millionth of a bitcoin.

The blockchain public ledger records bitcoin transactions. The systemaccomplishes this without any trusted central authority: the maintenanceof the blockchain is performed by a network of communicating nodesrunning bitcoin software. Transactions of the form payer X sends Ybitcoins to payee Z are broadcast to this network using readilyavailable software applications. It is this process of managing acryptocurrency transaction that will be woven into the payment requestAPI that is disclosed herein. The ultimate goal is to make acryptocurrency purchase as easy as a one click type purchase, which canbe made through Apple pay, android pay, Amazon.com, and so forth. In oneaspect, this process could also be implemented through an Amazon.comtype approach in which no API exists between the site and a browser, butthe information is stored locally with the site but the same basicfunctionality can be provided.

Network nodes can validate transactions, add them to their copy of theledger, and then broadcast these ledger additions to other nodes. Theblockchain is a distributed database—to achieve independent verificationof the chain of ownership of any and every bitcoin amount, each networknode stores its own copy of the blockchain. Approximately six times perhour, a new group of accepted transactions, a block, is created, addedto the blockchain, and quickly published to all nodes. This allowsbitcoin software to determine when a particular bitcoin amount has beenspent, which is necessary in order to prevent double-spending in anenvironment without central oversight. Whereas a conventional ledgerrecords the transfers of actual bills or promissory notes that existapart from it, the blockchain is the only place that bitcoins can besaid to exist in the form of unspent outputs of transactions.

Unlike traditional currencies, which are issued by central banks,Bitcoin has no central monetary authority. Instead it is underpinned bya peer-to-peer computer network made up of its users' machines, akin tothe networks that underpin BitTorrent, a file-sharing system, and Skype,an audio, video and chat service. Bitcoins are mathematically generatedas the computers in this network execute difficult number-crunchingtasks, a procedure known as Bitcoin “mining”. The mathematics of theBitcoin system were set up so that it becomes progressively moredifficult to “mine” Bitcoins over time, and the total number that canever be mined is limited to around 21 million. There is therefore no wayfor a central bank to issue a flood of new Bitcoins and devalue thosealready in circulation.

The system works via the use of a cryptocurrency wallet to put bitcoinsin. There are three different applications or flavors of bitcoinwallets. A full client is like a standalone email server that handlesall aspects of the process without relying on third-party servers. Auser would control the whole transaction from beginning to end. Fullclients verify transactions directly on a local copy of the blockchain(over 110 GB as of May 2017^([45])), or a subset of the blockchain(around 2 GB^([46])). Because of its size and complexity, the entireblockchain is not suitable for all computing devices.

A lightweight client is a standalone email client that connects to amail server for access to a mailbox. It would store the user's bitcoins,but it needs a third-party-owned server to access the network and makethe transaction. Lightweight clients consult a full client to send andreceive transactions without requiring a local copy of the entireblockchain (see simplified payment verification—SPV). This makeslightweight clients much faster to set up and allows them to be used onlow-power, low-bandwidth devices such as smartphones. When using alightweight wallet however, the user must trust the server to a certaindegree. When using a lightweight client, the server cannot stealbitcoins, but it can report faulty values back to the user. With bothtypes of software wallets, the users are responsible for keeping theirprivate keys in a secure place

A web client is the opposite of “full client” and resembles webmail inthat it totally relies on a third-party server. The third party replacesthe user and operates the entire transaction. Wallets typically come infive main types: Desktop, mobile, web, paper and hardware. Each of thesehas its advantages and disadvantages. Besides software wallets, Internetservices called online wallets offer similar functionality but may beeasier to use. In this case, credentials to access funds are stored withthe online wallet provider rather than on the user's hardware^([48][49])As a result, the user must have complete trust in the wallet provider. Amalicious provider or a breach in server security may cause entrustedbitcoins to be stolen. Physical wallets store the credentials necessaryto spend bitcoins offline. Examples combine a novelty coin with thesecredentials printed on metal) Others are simply paper printouts. Anothertype of wallet called a hardware wallet keeps credentials offline whilefacilitating transactions.

Buying and selling stuff with Bitcoins involves a particular process.There are no physical traces of them as of dollars. All that exists areonly records of transactions between different addresses, with balancesthat increase and decrease in their records that are stored on theblockchain.

Having introduced crypto currencies, this disclosure now turns to FIG. 2for the discussion of the browser payment request API and browserpayment handler API ecosystem and how one or more of these APIs could beimplemented to manage cryptocurrency payments.

Overall Architecture for One-Click Payments

FIG. 2 illustrates an example architecture 200 for pre-populating amerchant shopping cart, as well as for using a browser payment requestAPI and/or a payment handler API. In this example, a user 202 of acomputing device 204 running a web browser 206 loads a web page with aunified input field or any other site such as a social networking siteor a merchant site. In the aspect, focused on in this present case, thebrowser 206 is presenting a view of the merchant site 216 and the user202 operating their computing device 204 to run the browser 206 desiresto make a purchase from the merchant site 216.

In the ecosystem shown in FIG. 2, the goal is to enable the user 202 toeasily make a purchase on the merchant site 216 without needing tomanually enter a credit card, a private key, a delivery address, a phonenumber, and email address, a password, or any other manual data. Withthe use of one or more of the browser payment request API 218, and thepayment handler API 212, the ecosystem enables either locally storedinformation or locally stored apps on the device 204 or within thebrowser 206 to provide requested payment data and/or other data to themerchant site 216 through the defined protocols of the payment requestAPI 218. Payment and delivery data, user data, cryptocurrency, thewallet data, private keys, passwords, and any other data associated witha particular payment method can be stored locally at the browser 208, oron the device 204. In some cases, the browser 206 might reach out tosome other database as well to access needed data 226.

Where a payment method is not one that is stored on the browser 206 orthe local device 204, but where payment and delivery data, user data,cryptocurrency, the wallet data, or any other data is stored at aweb-based location 214, the payment handler API 212 can be utilized toaccess a server or payment service 210, which has access to or storesthe web-based payment data 214. One example of this scenario would be ifthe user has a PayPal account and the payment service 210 representsPayPal. PayPal can store the payment and delivery data of the user 214and can either provide it directly to the merchant site via an API orother communication or can provide information through the paymenthandler API 212 to the browser 206 which then provides the data throughthe payment request API 218 to the merchant site 216. The payment datacan be raw data such as a credit card number, expiration date, name, orcan be a tokenized version of the data which is configured for a onetime use for that particular transaction.

Another aspect of this disclosure relates to the user interacting withthe server 210 in which the server is running a search engine such asgoogle.com. This scenario involves how one might transition from agoogle.com site 210 to a merchant site 216 to enable a purchase withoutneeding to manually enter in payment data at the merchant site 216. Theserver 210 can represent any site or app, and can include paymentservice applications. As the user 202 enters data in the unified inputfield on the site 210, or interacts with the site in any other way basedon its respective functionality, such as social media functionality, thebrowser 206 sends the data, via the API 212, to the server 210. Theserver 210 can analyze the data to identify that the intent of the user202 is to make a purchase, based on the data entered in the unifiedinput field. The server 210 can identify a merchant website 216 thatsells the desired item, and communicate with that merchant website 216via its associated browser payment request API 218, if available. In oneaspect in this scenario, the payment data stored 214 can enable the site210 to process the payment and communicate via the API with the merchantthe payment details and information to the merchant 216 to deliver theproduct. If an API is not available, the server 210 can communicate withthe merchant website 216 via HTTP and can navigate through the websitein an automated fashion as if a user were clicking or entering data onthe merchant website 216. The server 210 can use a network-baseddatabase 214 of payment and delivery data or other personal data aboutthe user 202 to populate data fields at the merchant website 216.

However, if a network-based database 214 is incomplete or does notexist, the server 210 can, via the API 212, request data from a databaseof payment and delivery data 208 local to the browser 206 or to thecomputing device 204. The payment data 208 can be any payment datastored on the local device (or at a network based service), even if forother purposes such as a YouTube account, or associated with an emailaccount, or an iTunes account. If a user is logged into their browser,or their email account or any other type of account, and there ispayment data stored, the system can utilize or access that payment datato initiate a commerce purchase. When the user is making a purchase, thesystem can present the various payment accounts stored, such as a creditcard in Google Wallet, plus a Play Store account, and let the userchoose amongst the available payment options. This can also occur acrossplatforms such as information stored in Chrome plus an Amazon accountstored on Amazon.com. In this scenario, the Amazon.com data can berepresented by the server 210 and data 214 and can be provided to thebrowser 206 through an API 212 or other means. The browser 206 canaccess and utilize any stored payment data for simplifying the paymentprocess.

The server 210 can continuously receive additional data entered by theuser in the unified input field via, and update or modify data enteredat the merchant website 216, products selected for purchase at themerchant website 216, or even switch to a different merchant websitealtogether. The server 210 can transmit a response to the browser 206,via the API 212, so the browser 206 can present actions or destinationsto the user 202 based on the data entered in the unified input field.Then, if the user selects one of the actions or destinations, thebrowser 206 can navigate to that page and communicate with the merchantwebsite 216 directly, or without the server 210, although the server 210may continue to communicate with the browser 206 to track behavior ofthe user 202 at the merchant website 216. For instance, the server 210may track eventual purchase details referred through the unified inputfield. The server 210 can update the network-based payment and deliverydata 214 from time to time based on information processed from the localpayment and delivery data 208, or based on user input. The browserpayment request API 218 establishes the basic protocols forcommunicating information between the merchant site 216 and a browser206 for simplifying the payment process. The browser 206 can alsorepresent any device such as a voice controlled assistant or anappliance. The payment data that is communicated from the browser 206through the API 218 to the merchant site 216 can be tokenized forsecurity purposes. The merchant site 216 can then process a payment forthe product with their payment processor 220. The benefit of thisapproach is that the same payment infrastructure can be used by themerchant and only minor changes to a site are needed to utilize thebrowser API 218 to obtain the necessary data for processing a payment.As shown in FIG. 2, communications between the merchant site 216 via theAPI 218 with the browser 206 to obtain any kind of data 208, can occurin both directions. Thus, the merchant 216 can initiate a request fordata through the browser API and receive that data for any purpose suchas payment data to avoid the user needing to manually fill in paymentaccount, address information, as well as any other data such as shirtsize, pant size, shoe size, color preferences, one-click purchasingparameters etc.

For example, if the merchant site 216 is amazon.com and the site alreadyhas the payment account and address of the user landing on amazon.com, aone-click purchasing authorization or parameter may need to be set onthe browser 206 for the destination state to be a “one-click” purchasingstate. In the transition from the server 210 to the site 216, theprocess can include accessing or confirming that the one-clickpurchasing state is “on” for the browser to enable the user to land onthe site 216 and have the next interaction be a one-click to purchasethe product.

Various example aspects of implementing the payment request API 218 aredisclosed herein. It is noted that the payment and/or delivery data, aswell is any other data (such as user profile data, one-click purchasingdata, settings, parameters and so forth) that may be used for processinga purchase, can be stored 208 locally, on a user device 204 or may beretrieved from a network server or service, or a combination of both.For example, when the browser 206 receives a payment request through theAPI 218, it may communicate data with a network server associated with apurchase. A network server can encrypt data and create a token which istransmitted back to the user device, for passing on to the merchant forprocessing the payment. The server 210 can also represent any site otherthan search sites, such as social media sites, and the respectivefunctionality associated with the respective site will apply to how onemight transition from an interaction with the first site 210 to adestination merchant entity site 216. In other words, the initiatingtransitional interaction may not be entering data into an input fieldbut could be any interaction associated with the respective site, suchas interacting with an advertisement or an interaction associated with agame, map application, conferencing application and so forth.

In one aspect, as is shown in FIG. 2, the site 216 can also request viathe API 218 payment data from the server 210, which can have access tothe payment data, user data and/or other data. Thus, for example, a sitecould present a buy button as the user navigates for a product anddecides to make a purchase, and to turn that purchase into a one-clicktype experience, the site could perform an API call to a server, such asa Google based server or an Amazon based server, for example, andretrieve payment information and/or other data stored with Google orAmazon, or any other entity, which can be passed through the API to themerchant site for processing the payment and potentially delivery of theproduct to the buyer. Thus, payment data stored in say Google Play, orwith an email address or YouTube, or at Amazon, could be accessed andprovided quickly and easily such that the user does not have to manuallyenter the data to make a purchase. The server 210 might also accesspayment data stored in connection with the browser 206 to make apayment. Indeed, the API 218 and/or API 212 could be used to present anumber of different payment options via a user interface, such as onepayment option stored in a browser 208 and one payment option stored ata Google server 214, or Android Pay, for example, and enable the user tochoose which payment account to use for a payment. Information about thechosen payment account can be passed through the API 218 to the site 216for processing.

One aspect of this disclosure is how to utilize the ecosystem with theAPIs disclosed in FIG. 2 for cryptocurrency transactions. In such ascenario, the merchant site 216, would typically provide data throughthe API 218 that it can process a cryptocurrency payment. The browser206 would likely already have registered that cryptocurrency to a walletas part of the user data 208. Thus, if the merchant site acceptsbitcoins, and the browser stores data indicating a user has a bitcoinwallet and is authorized to make purchases via bitcoin, then a browserpayment request API interface 300 can be presented with bitcoin as anoptional payment method as is shown in FIG. 3A.

This exchange of overlapping payment methods can occur via the paymentrequest API 218 between the browser 206 and the merchant site 216. Thebenefit of this approach is to reduce the number of clicks orinteractions from the user by automating as much of the payment processas possible.

An aspect of this disclosure relates to a method including receiving,from a site, at a browser and via a browser payment request applicationprogramming interface that defines a protocol for communicating databetween the site and the browser, a request associated with a potentialpurchase, wherein the request includes an identification of acryptocurrency payment method accepted by the site and transmitting, tothe site, from the browser and via the browser payment requestapplication programming interface, data indicating that a user of thebrowser can pay for the potential purchase via the cryptocurrencypayment method accepted by the site. This is a “canmakepayment” exchangein which the site and the browser determine the overlap between acceptedpayment methods. In this example, a cryptocurrency method is common toboth the site and the browser/user. The method includes receiving, via auser interface associated with the browser payment request applicationprogramming interface, a confirmation from the user to process thepotential purchase using the cryptocurrency payment method andretrieving, based on the confirmation from the user and via the browserpayment request application programming interface, cryptocurrencypayment information for the potential purchase. The retrieving caninvolve gathering the input to the transaction which can include thebuyer's private key, data about the address of the person whotransferred the cryptocurrency to the buyer, the seller's public key, apassword and/or any other data for processing the cryptocurrencytransaction. The cryptocurrency wallet can be local to a device orweb-based. Such wallets in one aspect are registered with the browser,like any other payment method, such that they are usable and thenecessary data for the transaction can be provided to the browser as theagent managing the transaction. The method includes, in one aspect,transmitting from the browser and via the browser payment requestapplication programming interface, the cryptocurrency paymentinformation.

Assume in one example that the user is utilizing a cryptocurrencypayment method for a transaction. In this scenario, there are severalfactors that need to be taken into account. One factor may be the typeof wallet that each of the buyer and the seller have. Thus, a differentset of parameters may be communicated for a full-service wallet whichperforms all necessary functions of spending and receivingcryptocurrencies such as generating private keys, deriving thecorresponding public keys, distributing public keys, monitoring foroutputs spent, creating and signing transactions, spending thoseoutputs, and broadcasting the signed transactions. Full-service walletsare the most popular type of wallets, they are easy to use and a singleprogram can manage spending and receiving cryptocurrencies.

In one scenario, if the user does select a cryptocurrency for atransaction, the payment request API interface 300 could be modifiedfrom an original currency, such as dollars, to the cryptocurrencyamount, such as bitcoins. Typically, the user will confirm a shippingaddress, other shipping information, or any other information associatedwith the transaction. The browser payment request API can receive theconfirmation, such as “pay” interaction with the user interface. Next,the browser API can communicate with the buyer's cryptocurrency a wallet208 to provide instructions to send 0.02 Bitcoin to the merchant'swallet 222. There may need to be some additional user interfacepresented as part of the payment request API interface which indicatesor instructs the user that their bitcoin wallet will be sent aninstruction to send the payment associated with the transaction to themerchant wallet. The payment request API, could receive the necessarypublic key data for the merchant's wallet, of course, the amount isprovided, and can manage the interaction with the buyer's walletautomatically such that the transaction gets initiated on the peer topeer network. The other database 226, which is indicated in FIG. 2 canrepresent the peer to peer network in which the browser 206 can providedata to manage the transaction. The wallet 208 of the buyer could alsosend the transaction to the peer to peer network 226 such that themerchant is paid in bitcoin.

One aspect disclosed herein is a smart contract used in connection witha payment request API user interface. The interface 300 can include aselectable option to process the transaction on a smart contract orblockchain-based smart contract. This option may be presented by themerchant (e.g., as instructed through a parameter in an APIcommunication) or as an option selected by the user, which data isstored in the browser. The interface 300 may also just include a noticethat the transaction will be managed through a smart contract. In oneaspect, if additional data is needed to manage the process using a smartcontract, a further interface can be presented or fields can bepresented which enable the user to provide the information needed forthe smart contract to function. This could be a password, a fingerprintID, a login name, a captcha request, a document, a picture, a securityquestion, or any other data which might be needed for a smart contractto manage the purchasing process. The implementation of the smartcontract could be based on the user confirming the smart contract use,or could be based on a requirement by one or both of the parties to thetransaction that they require the smart contract.

Any communication of data or instruction that needs to be transmitted orreceived is contemplated as within the ecosystem of FIG. 2. For example,if the user maintains a web-based wallet 214, and an additionalindication is necessary between the browser and the web-based wallet214, then that data can be communicated be the via the payment handlerAPI 212 to a server or service 210. The server or service can performthe same functionality of providing the necessary data in order toimplement a transaction from the buyer's wallet 214 with the necessarypublic key, signature, private key, and so forth to initiate thetransaction. As can be seen in FIG. 2, a transaction from a wallet 208to the merchant wallet 222 is provided, as well as a transaction fromwallet 214 to the merchant wallet 222. As has been noted above, in somescenarios, a user may transmit two bitcoin to the merchant and receivechange of 0.5 bitcoin. All of these transactions and change, ifnecessary, can be communicated between wallets via the payment requestAPI 218. The essence of this process is to enable a single pipeline forvarying payment methods to correspond to both a buyers list of availablepayment methods, and the list of available payment methods available atthe merchant 216.

Another aspect of this disclosure involves how to handle the timing ofelements with cryptocurrency payments. With bitcoin, it can take tenminutes to mine a new transaction. It would not be anticipated that theuser would see a spinning indicator on a payment request API userinterface indicating the payment is processing for ten minutes.Accordingly, another aspect of this disclosure with the browser 206acting as an agent to make the entire purchasing transaction easier,could include a peer to peer network that, when they provide theconfirmation of a completed transaction, could send the confirmation tothe browser 206 which can take further steps such as initiating amessage transmitted to the buyer via their cell phone, via email, or viaanother payment request API interface. When a confirmation is receivedat a cryptocurrency or wallet 208, 222, or 214, and having established acommunication with the wallet, via the browser API 218, 212, the walletcan provide confirmation data of the transaction back to the API in anypathway. Again, the browser can then actually initiate a communicationto the user in any number of channels indicating that the cryptocurrencytransaction is complete on the Blockchain.

The browser API 218 has a number of characteristics that can distinguishit from APIs between the site and a payment server, such as a PayPalscenario, and from general hypertext markup language (HTML) protocols.HTML is a markup language that web browsers use to interpret and composetext, images, and other material into visual or audible web pages. Webbrowsers will receive HTML documents from a Web server or from localstorage and then render those webpages. HTML generally describes thestructure of such webpages semantically and the instructions for theappearance of documents on the browser. Cascading style sheets andJavaScript can also be part of HTML. Default characteristics for everyitem of HTML markup are defined in the browser, and thesecharacteristics can be altered or enhanced by the web page designer'sadditional use of CSS. In contrast, an application programming interfacerepresents a set of subroutine definitions, tools, and protocols whichoutline a set of clearly defined structures for communication betweenvarious software components. It is an established API for communicatingbetween a site, such as a merchant site, and the browser. As such, thebrowser must be programmed with the routines, data structures, objectclasses, variables and/or remote calls to enable a respective site whichdesires to utilize the API to be able to make payment request calls andreceive the appropriate data via the API for processing payments. Thebrowser API is not an HTML interface, nor is it an API that is designedfor communication between the site and directly with a network-basedpayment server or payment service. We note that disclosed herein is aprocess in which the browser can act as an agent and manage throughother APIs between the browser and network-based payment services, theprocess of making a payment or providing payment data, such as tokenizeddata, to a merchant site. However, in that scenario, the site does notneed to make separate API calls to a network-based server because thebrowser is established as the agent to manage the process, thussimplifying the communication for the site such that only calls throughthe browser API need to be made for authentication, authorization,network-based processes, to occur. Thus, the API, which can be a set ofHTTP request messages, along with a definition of the structure ofrequest messages and response messages, which can be established in anXML or JavaScript object notation format, is built into the browserenabling the browser to act as an agent for providing authorized paymentdata, password data, login data, tokenized payment data, or to manage asan agent network-based payment processing or logging in processing, allthrough payment request or other calls made from the site through thebrowser API. The browser API manages the flow of data between thebrowser and the site and enables the browser to separately reach out forauthentication, data, tokens, or other network based services. The APIprovides a consistent experience across payment methods, systems,platforms and merchants. Typical web based APIs have defined interfacesbetween the site and a web service and a novel concept disclosed hereinis the new API that defines the architecture and programmable interface,data structures, and so forth, which are built into a browser, such thatthe browser can receive payment requests, retrieve authorized paymentdata, respond to the request, whether the process be a payment processor a login process, such that payment or login processes can besimplified and unified across sites.

FIG. 3A illustrates an interface 300 with such information as the user'sname, shipping address, shipping options 306, and email address 310 fora receipt. Options can be presented based on the correlation betweenpayment methods such as pay with Mastercard 302 or bitcoin 304. Ifbitcoin is selected, then the total amount could be transitioned tobitcoin 314. The user can then click on pay 316. The challenge inintegrating the payment request API with crypto currencies is how tomaintain a simple interface that can be uniform across payment methods,and various cryptocurrency wallets. There are several solutions whichare provided herein to handle behind the scenes communication of datasuch that the user can easily make a cryptocurrency payment via apayment request user interface, as is shown in FIG. 3A.

FIG. 3B illustrates a partial overlay of a payment user interface thatcovers at least a portion of the underlying merchant site. In thisaspect, as part of a payment process, a user interface 320 could involvepartially covering the underlying site 322 which the user interacts withto initiate the purchasing process. The process could includedynamically presenting an interface 324 that reveals at least a portionof an underlying site interface 322 and covers at least a part of theunderlying site interface 322 as part of a payment process. The user caninteract with the overlying interface 324 while viewing a portion of theunderlying site interface 322. The overlaying interface 324 can includea number of different options with which the user can interact forperforming functions associated with making purchase on the site. Thiscan be termed a “tear” or other terms that indicate fundamentally anoverlay interface 324 that the user can interact with which partiallycovers an underlying site that is selling a product to the user. Thisconcept can involve a blending of the browser payment request APIconcept with the “tear” concept to enable the purchasing interactionwith the site 322 to include an overlay browser API interface 324 thatpartially covers the site and enables the user to interact in anefficient manner.

In one example, the user clicks or indicates via the interface 322 witha site within a browser, or via a spoken dialog or any other interactivemodality, that they desire to initiate a purchase. An overlay interface324 can be presented to the user which partially covers the visualpresentation of the site 322 from which the purchase will be made. Theoverlay includes interactive components with which the user can interactwith to complete the purchasing process. The overlay 324 could be abrowser payment request API interface with one or more of payment,delivery, currency, cryptocurrency, smart contract options, amounts,address, and so forth. The overlay enables the user to still see aportion of the underlying site 324 from which the purchase is beingmade. Once the user interacts with the overlay, such as finallyconfirming to “pay” 328 it can disappear or be removed leaving the userviewing the site after having made a purchase. Information on the userinterface 324 can provide data about which browser API is being used tomanage the payment process, such as Chrome, Mozilla, Apple Pay and soforth. In some cases, the interface 324 could also be integrated with afingerprint reader 330 such that the number of clicks can be reduced.For example, at any stage in the process, the user may be asked to justprovide their fingerprint to confirm payment. In this scenario, the usercould click on the pay button in interface 322, the API interface 324could slide up and partially cover the site interface 322, and the usercould only need to review the material (make edits or changes asnecessary) and then confirm the payment with a fingerprint only. Noother interaction would be necessary. This can reduce the number ofclicks required, for example, with Apple Pay where an extra “pay” clickis used before providing the fingerprint.

FIG. 4 generally shows a Coinbase.com wallet 400 that a user can selectto send or receive crypto currencies. This case includes data aboutthree wallets for the user, a bitcoin wallet 402, an Ethereum wallet 404and a Litecoin or LTC wallet 406. The user can click on send or receivefor the respective cryptocurrency through the respective wallet. In onescenario, the interface shown in FIG. 3 presents the user with theoption to pay using their CoinBase wallet or a wallet which enables theuser to choose from a number of different crypto currencies. In such ascenario, using a slide up mechanism, or a modification approach to theuser interface of FIG. 3, to enable the user to select the CoinBasewallet and then be presented essentially with a coin base walletinterface similar to what is shown in FIG. 4. At this stage, the usercould then select which cryptocurrency they desire to use.

FIG. 5 illustrates the BTC Coinbase.com wallet interface 500. In thisscenario, the user selected “send” from the BTC wallet shown in FIG. 4.The BTC wallet of FIG. 5 enables you to identify the recipient either bywallet address 502, or by their email address 504. FIG. 5 illustratesusing the wallet address and the recipient field 506. The user haschosen to withdraw money from their BTC wallet as is shown in field 508.The amount in dollars is shown in 510 as well as in bitcoin in field512. A message field 514 is provided, as well as a continue button 516for the user to complete the payment.

One benefit of using the payment request API is that the interface, asis shown in FIG. 5 can include prepopulated fields such as the recipientaddress 506 and the dollar amount 510 and as well as the bitcoin amounts512. The process with respect to a purchasing transaction can include ascenario where the user selects, bitcoin in the interface of FIG. 3, andthe interface morphs into their traditional cryptocurrency walletinterface, with prepopulated data fields. Rather than needing to clickpay 316 in FIG. 3, the next interaction could be to click continue orpay 516 from the cryptocurrency wallet interface. This can reduce thenumber of clicks necessary in order to achieve a cryptocurrency payment.

In one aspect, when the user registers a cryptocurrency wallet withtheir browser such that it can communicate with the browser paymentrequest API, graphical data can be presented such that the standardinterface can be integrated with the browser payment request API userinterface. Essentially interacting with the browser payment request APIinterface could be a proxy for handling a payment via the user'scryptocurrency wallet with the underlying data being communicated behindthe scenes to the wallet for carrying out the actual transaction.

In another scenario, FIG. 6 illustrates a blending of the interface of acryptocurrency wallet and the payment request API interface 600. Theblending could be very convenient inasmuch as there are elements of thepayment transaction that are not usual for a cryptocurrency walletpayment and vice versa. The user interface 600 in this scenario caninclude all of the data in one single interface. The user has selectedthe pay with a cryptocurrency 602. The ship to data is identified 306.The chosen shipping options are presented 308. The email address for areceipt is provided in field 310. Data received from the payment requestAPI about the cryptocurrency, recipient address or email address forreceiving cryptocurrency can be presented in field 604. The total can bepresented in bitcoin or other cryptocurrency 606. The user can thenclick pay 316. What happens when the user clicks pay is that the browserpayment request API interface, receives that confirmation andcommunicates with the cryptocurrency wallet the necessary data such thatthe wallet can carry out the transaction and submit the transaction tothe peer to peer network and the mining process to add a block to theBlockchain.

In one aspect, the system can actually enable a user to use multipleforms of payment for one purchase transaction. For example, if a userhas 0.5 BTC available in cryptocurrency for a purchase and desires touse it for the purchase the user may apply it towards a purchasetransaction. When the cost of a purchase transaction exceeds thatavailable in cryptocurrency or because of user preference, the systemcan allow the user to pay the remaining balance with one or more paymentoptions such as PayPal or VISA, for example. Multiple currencies couldbe used for payment as well. In other cases, the API could be used toaccess miles, points, cryptocurrencies, or any other form of value to beexchanged individually or in combinations of currencies for a product. Adropdown menu 304 can be replaced with several dialog boxes for the userto input the amount he desires to use from each different paymentmethod. Additionally, a toggle button can be used to display the cost ofa transaction in cryptocurrency versus dollars or Euros, for example.Any number of combinations of payment methods for one or more purchasetransactions is contemplated. The browser API can manage the paymentfrom the different payment methods to complete the full payment of theproduct or service.

In some scenarios, the timing needed to confirm a cryptocurrencytransaction can be ten minutes or any amount of time longer than thestandard payment confirmation time the user typically waits when makinga normal transaction. The user interface 600 can include an emailaddress, telephone number, or other indicator in the field 310 where thebuyer can receive a confirmation that the Blockchain processing iscomplete and the payment has been made, or added to the Blockchain. Thisis a unique characteristic of some cryptocurrency transactions and thatthey are not done in real time, and there is a lag for the miningprocess to occur. In one scenario, the payment request API interface canremain until that processing is complete or can be removed with a laternotification to the buyer and/or the seller that the payment iscomplete.

There are a number of ways in which payments can be carried outdepending on the structure of the cryptocurrency wallet, such as whetherthe user needs to choose a cryptocurrency as in coin base or whether thewallet only carries a single cryptocurrency. For example, if the userhas a coin base account, and they select bitcoin as theircryptocurrency, the payment request API could navigate behind the scenesinto coin base.com, and essentially drill down to a deep link into theirbitcoin wallet and interact with the wallet with the data provided aboutthe bitcoin amount, the recipient address, whether it is a public key oran email address that is used, and even enter in the optional messageand commit the transaction. In this scenario, by virtue of interactingwith the browser payment request API, and selecting a cryptocurrency,the user can implement a cryptocurrency payment without manuallytransitioning to their cryptocurrency wallet and manually entering inthe data.

It is contemplated that a cryptocurrency wallet would need to have somespecial programming to enable it to communicate with the browser paymentrequest API. This would be similar to the programming necessary for anywebsite to be able to make browser payment request API calls and receivedata according to the program to protocol. In one aspect, a trip tocurrency wallet could be built right into a browser or into the merchantsite. The processing that may be necessary is similar on both sides ofthe transaction. For example, from the merchant side, the merchant mayneed to click on a receive button, as is shown in FIG. 4 to receivecrypto currencies. Again, with the proper programming to be of theinterface with the payment request API, the recipient wallet could alsobe opened and have the necessary interaction in order to receive cryptocurrencies via a simple interaction with the payment request APIinterface shown in FIG. 6 and other figures.

FIG. 7 illustrates another example interface 702 on a mobile device 700in which a hat is being purchased for 1.0235 BTC 704. The currencyamounts in taxes, shipping and the total are all shown in bitcoin 706.In this scenario, the “pay” button is replaced with a fingerprintconfirmation 708. The instruction is provided to buy now with afingerprint 708. This interface illustrates a further simplifiedapproach in which once the user selects to pay with bitcoin, the nextinteraction could be presented as a fingerprint confirmation. Otherbiometric confirmations such as iris scans and facial recognition arecontemplated. This simplified approach can dramatically reduce thenumber of interactions necessary in order to carry out a cryptocurrencypayment.

FIG. 8 illustrates an ecosystem 800 which includes a browser 804, amerchant site 802, a payment request API interface 808, a user bitcoinwallet 806 and the merchant bitcoin wallet 810. It is assumed that theuser wallet, 806 is programmed, registered, and configured to be able tocommunicate with the browser in the manner disclosed herein. The browseris also programmed to be able to activate and communicate with thewallet 806 as any other payment app. Similarly, the merchant wallet 810and the merchant site 802 are both programs to be able to interact aswell. FIG. 8 illustrates the basic approach in which once a user selectsa cryptocurrency in the payment request API interface 808 that thegraphical interface can either be morphed into blending a cryptocurrencycomponent, or could slide up or transition to a pre-filled outcryptocurrency wallet interface that the user is familiar with. Thisinterface can be a transition to the cryptocurrency wallet 806 forpurchase, or can be a proxy interface in which the look and feel of thecryptocurrency wallet is presented as part of the browser paymentrequest API interface and the necessary data, and instructionalinteractions are passed via the payment request API, through thebrowser, to the wallet 806 for carrying out the instructions. These andany other interactions that might be necessary are contemplated aswithin this disclosure to enable the user to easily select acryptocurrency as a payment option and confirm the payment withoutneeding to fill in manually private keys, public keys, recipient emailaddresses, cryptocurrency, amounts, and so forth. The processing can beshared between the browser 804 and the wallet 806 in any manner thatmight be necessary.

It is noted that different cryptocurrency wallets will have differentinterfaces and different requirements. A standardized protocol can beestablished within the browser payment request API for communicating thenecessary input, amounts, and output data which are required forhandling a cryptocurrency each transaction. By defining the basic dataparameters and structures, any cryptocurrency wallet can easily beestablished as being selectable by the user as part of a payment requestAPI purchasing transaction.

In another aspect, the disclosure covers, as is shown in FIG. 9 abrowser receiving, via the user interface, an interaction by a user withan object associated with a site (902), the interaction indicating auser intent to make a purchase, receiving, based on the interaction andvia an application programming interface, a request from the site forpayment data in connection with the purchase (904) and transmitting, tothe site and via the application programming interface, the payment data(906), wherein the payment data can be used to process a payment ordeliver a product associated with the purchase.

The process can be performed as follows. After a user interacts with theobject, the site can make the JavaScript API call for a payment requestvia a browser payment request API between the browser and the site. TheAPI request can include data such as acceptable forms of payment for thesite (Visa, Mastercard, Bitcoin, Ethereum, Dash, Apple Pay, Android Pay,CoinBase, etc.), the amount to be charged, what currency they expect,other data depending on the context of the purchase, and so forth. TheAPI request can also include details about the transaction such as totalamount, currency, how amounts are calculated, tax, discounts, shippingcosts, etc. The browser can then determine a match between acceptablepayments and available payments through stored credit card information,access to an altcoin wallet for the user, Apple Pay, Android Pay,PayPal, or any other type of payment service. The system may present theuser with current information and an opportunity to add a shippingaddress, correct data, or change any of the necessary data for thetransaction. The system receives and updates any changed data. Ifoptions are presented to the user, the user can select which paymentoption to use for processing the transaction.

Assume in one example that the user selects a cryptocurrency for thetransaction. The payment request API can be utilized to exchange anydata that is needed to perform the transaction. For example, if thebuyer's wallet is to be used to transmit the money to the recipient'swallet, then via the API, the buyers wallet can be activated in thebackground and delivered the amount, and the merchant's public-key orany other data necessary for the transaction. The type of wallets thatare being used for the buyer and the merchant can be provided throughthe API. The dollar amount in connection with the cryptocurrency amountcan also be provided. In some scenarios, actions have to be taken bothon the sending wallet and the receiving wallet to confirm thetransaction. For example, when sending cryptocurrency, such as bitcoin,a sending wallet can enter a BTC address of the recipient, and continuewith the transaction. All of these interactions could be handled by thepayment request API who can receive the confirmation of the purchase,such as is shown in FIG. 8 and then carry out the interactions with thebuyer's cryptocurrency wallet. In one example, wherein an email addresswould be used as the recipient address of the payment, the merchantcould provide that data via the payment request API. In another aspect,where a “receive” input is required to confirm at the merchant walletthat the payment is provided, the payment request API could also haveestablished a separate communication to the merchant wallet. Anyinteraction that is needed for a respective wallet to be able totransmit or receive a cryptocurrency payment can be managed via thebrowser payment request API and/or the payment handler API disclosedherein, such that the only clicking interaction that needs to occur fromthe user standpoint is the “pay” interaction shown in FIG. 3.

In a scenario where a user selects a cryptocurrency as the paymentprocess as part of a spoken dialog, the “pay” interaction can be anaudible signal to initiate the cryptocurrency payment. Accordingly, thepayment request API, in this scenario, can identify the confirmedtransactions via the payment request API interface, access a buyer'swallet, initiate the wallet application, provide the recipient data, theamount data, and any other data such as a message that can be providedby the sender, and cause the wallet to initiate the transaction. If themerchant wallet also needs to be opened and interacted with to confirmthe receipt of the payment, the browser API programming on the merchantside can achieve that processing.

In some scenarios, a wallet enables the user to type in a message to therecipient. If there's any such additional data that might be desired aspart of the cryptocurrency payment, or as part of any payment methoddisclosed herein, that data can be provided through the payment requestAPI interface shown in FIG. 3. For example, a user comment field couldbe provided which would enable the user to type in a message that can bedelivered to the merchant. In situations like Apple pay where afingerprint confirmation is utilized as part of the secure paymentprocessing, a similar scenario could also be provided where afingerprint could be implemented to confirm or increase the security ofthe cryptocurrency payment.

Next, the user can authorize the transaction depending on the type ofpayment account the user is using. A shipping address might be exchangedor used to include in a total amount a shipping charge. An interface canbe presented to the user to confirm one or more of a payment method, apayment amount, a shipping address, and so forth. The payment methodmight be through a stored credit card in which the last 4 digits mightbe presented for confirmation. A user's cryptocurrency account might bepresented as an option. If the credit card is chosen, then the creditcard information (card number, expiration date, name, CVC) istransmitted through the API to the site for processing using the site'spayment process system. This can be an encrypted transmission or somesecure mechanism to maintain security such as a generated one-time usetoken. If a local payment is chosen through say a Google Wallet, AndroidPay or Apple Pay type of service, then the chosen service can processthe payment and a report through the API can be provided to the site.Other information about the user can be sent to the merchant as wellsuch as email address, address, payer phone, social media data, contactsin social media etc. The merchant can then continue with a relationshipwith the buyer.

From the merchant standpoint, the method can generally proceed asfollows and shown in FIG. 10. The method includes communicating databetween a site (the merchant) and a browser (1002). The method includestransmitting, for presenting via the user interface of the browser, anobject with which a user can interact (1004), receiving an interactionby the user with the object associated with the site (1006), theinteraction indicating a user intent to make a purchase, transmitting,based on the interaction and via an application programming interfacebetween the site and the browser, a request from the site for paymentdata in connection with the purchase (1008) and receiving, at the siteand via the application programming interface, the payment data (1010),wherein the payment data confirms a payment or can be used to process apayment for a product or deliver the product associated with thepurchase. As noted above, the payment processing can occur on eitherside of the API depending on what service the user is signed up for orthe preferences of the user. When the site processes the payment for theproduct, the payment data can include at least user payment account datasuch as a one-time use token. The method can further include the siteprocessing the payment for the product based on the payment account datareceived from the browser via the application programming interface.When a payment service processes the payment for the product, thepayment data can include a confirmation that the payment for the producthas occurred by the payment service such that the site can deliver theproduct to the user. Alternately, if an altcoin approach is selected,the API protocols can include a feature for exchanging, in an encryptedfashion, information or personal keys, addresses, amounts, conversiondata between currency and altcoin values, and any other data necessaryto enable an altcoin wallet or payment service to make the altcoinpayment to the merchant site and report the success of the payment. Inthis regard, the API protocol is structured such that the user canselect various methods of payment, including payments occurring on thebrowser side of the API (through the browser or payment serviceassociated with the browser or communicating with the browser, or analtcoin system) or on the merchant side of the API, through themerchant's standard payment processing structure for payment systemslike Visa, Mastercard, Debit cards, PayPal, etc. Thus, in one userinterface as the user is getting close to making a purchase, the usercould see payment options such as “Visa ********1234” or “Android-Pay”.Choosing the Visa payment method would cause the back end processingbetween the merchant and the browser to have the Visa paymentinformation, account number, security code, user name, address, etc.transmitted to the merchant site so the merchant can process thepayment. Choosing Android Pay would result in the purchase amount, tax,shipping and/or any other necessary data to be transmitted through theAPI such that the Android Pay service could process the payment andreport back a confirmation of a completed payment such that the merchantcan deliver the product.

In this scenario of a cryptocurrency, receiving the payment data (1010)can include receiving confirmation via the payment request API that thebuyer cryptocurrency wallet successfully received the merchant address(public key or email address, or other data to identify the merchant),the amount of the transaction, and that the transaction was submittedfor processing on the Blockchain. The merchant may need to also haveprocessing on their side to affirmatively receive using the merchantcryptocurrency wallet the payment from the buyer. Thus, the processingdescribed in FIG. 10 can be applied to a cryptocurrency payment withwhatever variations are necessary by way of data communication, dataprocessing, wallet functionality, and so forth to enable acryptocurrency payment.

The above approach also can be applied to the drop down or drop upmenus. With the API in place, the efficiency of making purchases from adrop down/up menu option can be increased. For example, a user'sinformation such as hat size, shoe size, shirt size, pant size, etc. canbe stored. User preferences for color, style, etc. can be stored andsuch information can also be accessed via social media sites or contactinformation. This data can be used to help autocomplete or selectproducts to list in a drop down menu. Such information can becommunicated via the browser API with merchants who sell products withparameters that can be filled in through such user data. If the userstarts to type “green baseball cap”, a drop down menu item could state“green baseball cap 7 8/5 inches, buy now with Visa, $11, buy now withBitcoin, delivered by Walmart on Tuesday”. As the user types the words,a correlation to a product database at a merchant site could lead to themerchant exchanging product information or make a request for a paymentrequest through the payment request API. The user's address can be drawnupon to determine shipping costs, taxes, etc, quickly such that the dropdown/up menu can include one or more of a charge, a payment option,delivery information, description of product, size information, personaluser preferences for color or style, etc. The user merely clicks on thatoption to make the payment (on either side of the API depending on thecapabilities of the merchant, user payment accounts, and so forth), andhave the product delivered. If more than one payment option is available(Visa, Android Pay, Bitcoin), the item in the drop down menu can perhapshave multiple sub options to choose from perhaps in a left to rightfashion. This would be a more dynamic drop down/up menu in which theuser could drop down to select the row but then slide to the right orleft until the cursor is over the Android Pay option. Releasing thecursor could cause the system to continue to exchange information viathe API and process the payment through the Android Pay option andreport that payment to the merchant. The menu option could report anynumber of different pieces of information for the product, such as apickup location (For pickup at Walmart in Dunkirk), and so forth.Current drop down menus provide some options like to search for the itemon Amazon.com or Yahoo.com but they do not provide the purchasingsimplicity that can be achieved by tailoring the drop down/up choicesthrough use of the browser API between the browser and merchant sites.Objects that the user can interface with can be presented in anylocation on the user interface, not just drop down menus.

Another benefit of this approach is that as the user is typing in theproduct information into the search field, the user can view the dropdown/up results and narrow the scope as they go. For example, if a usertypes in “baseball cap”, a drop down/up item could include items suchas: “G”reen Baseball cap sold from “W” almart or “C”osco. The user couldcontinue to type: “baseball cap G C” which could utilize the hints fromthe drop down menu to make it green and from Cosco. Perhaps two pricescould be shown “$11 or $20” and the user continues to type “11” into theinput field. The dynamic exchange of typing and feedback from the dropdown/up menu item could also indicate which of a number of differentdrop down/up menu items the user is interacting with and continue tofocus the search and the results on what the user is looking for.Throughout this process, it can quickly be assumed that a purchaseintent is likely and the exchange of payment data and options can bepresented and chosen by the user. For example, the drop down menu itemmay say “Green Baseball Cap, $11, “A”ndroid Pay, “V”isa or “B”itcoin”and the user could continue to type “baseball cap G C V” which wouldindicate the choice of Visa as the payment method. Pictures can bedynamically presented through this process including the opportunity toclick on a picture and continue providing information through the inputfield such that ultimately the user has chosen the item, its color,size, and so forth, the payment mechanism, and can confirm the payment.In one example, the menu item could be more dynamic than current menuitems to let the user click on different objects within the item tochoose payment options, size, color, merchant, delivery address, and soforth. As the user narrows down which drop down/up item the user wantsto focus on, more information to complete a purchase could be providedsuch that the process becomes very quick and simple. The menu itemscould start out short and simple but as the user types more or interactswith a menu item, new data or objects could be presented which, in adynamic fashion through interaction with the API, could lead to a quickfinalizing of the item for purchase. For example, the user may initiallychoose “iPhone 8, from Bob's Audio Video”, but then the merchant cancommunicate that it can handle Visa and Android Pay through the API. Ifthe user also has these payment options available, then the menu itemcan add two selectable objects which the user could click on oralternately continue typing in the input field (since the user isalready at the keyboard typing anyway) a “v” or an “a” to represent thechoice. The system after interacting to confirm an item, an amount, adelivery address, a payment option, etc. can manage the payment asdisclosed herein on either side of the API, and instruct the merchant tomake the delivery.

The process, through the browser API, enables the exchange of paymentdata, one-click parameters or settings, any other data, and to processthe payment in the manner chosen by the user. For cryptocurrencypayments, the process can include initiating a cryptocurrency wallet appstored on a buyer device, or can include communication between thebrowser API, or a second API, with an online cryptocurrency wallet inwhich the browser API initiates a login process, and navigates to apoint of data entry in the online cryptocurrency wallet in which datafields can be populated with the input, amount, and output datanecessary to carry out a cryptocurrency, he payment from the buyerscryptocurrency wallet to the merchant cryptocurrency wallet. Themerchant delivers the item. The drop down/up menu concepts disclosedherein work in a different way with the browser payment request API butachieve a similar result of more efficient purchasing process for theuser. The disclosure covers the interactions both from the side of thebrowser interacting throughout the process through the API with themerchant and the processing from the merchant site where they managetheir database of products and interact and exchange information,requests and so forth via the API with the browser.

The following discussion continues to relate to the use of an API orother protocol to communicate payment related data from a browser, site,agent, or other storage location to a merchant site for the purpose ofpopulating payment fields for the user to simplify the purchasingprocess. In one aspect, the disclosure relates now to transition a userfrom a search engine, social media site, or any site, to a merchant siteusing the API. In another aspect, the merchant site can (independent ofhow the user navigated to the site) interact via the API with thebrowser/agent/entity to obtain the payment data for automaticallypopulating the payment information to eliminate or reduce the need ofthe user to fill in data fields, which is particularly cumbersome on amobile device.

In one aspect, a system, method and computer-readable storage devicesare disclosed which prepopulate a shopping cart in an online vendor'swebsite based on intent determined by a classifier that processes inputprovided to the unified input field. The user intent can be classifiedor determined in any manner. A user can be registered with and/or loggedin with his or her browser, such as Chrome, Firefox, Internet Explorer,Samsung Internet, Microsoft Edge, Safari, or Opera, such that user'spurchasing credit/debit card or other accounts and delivery addresses,and/or other data, are stored in a user profile. Then, if the userdesires to make a purchase through a destination website that may have aproduct not found on their registered website, the browser (or systemprocessing in a network) can handle negotiation (via an API) between thebrowser and the website such that the system can convert a shopping-cartbased model website with which the user is not registered into a“one-click” purchasing experience for the user. For example, the system(through a service like Google Wallet, Apple Pay, Android Pay, orPayPal, etc.) can handle the payment for the item and communicate withthe merchant site to handle delivery. Of course in this scenario, theprocess can initiate not from a search engine but merely from a statewithin the merchant site in which the user is in a position of making apurchase of an item. At that state, the merchant site could communicatevia the API with the browser, agent, or search entity, to retrievepayment data for populating the necessary payment fields and present viathe interface with the user a simplified purchasing experience. Withpayment data (one or more of account data, delivery data, dates,delivery options, preferences, etc.) communicated through the API to themerchant site, the merchant site can process a payment from the user'spayment account using their normal payment system.

Assuming that appropriate permissions are in place, such as in a browsersetting authorizing the browser to navigate and provide input in awebsite's purchasing, registration, or shopping cart process toautomatically input name, address, credit card information, etc., thesystem can automatically populate a shopping cart, including evenregistering on behalf of the user at a website with which the user hasnot registered. This can occur as part of a transition from say a socialnetworking site to a destination merchant site in a one-click purchasingstate based on a setting in the browser that needs to be accessed in thetransition. The user provides input in a unified input field, such as“buy acme toaster 4.5” which the system and the classifier categorize asa desire to make a purchase of a particular toaster model. The systemdetermines, based on various criteria such as pricing, shipping,country, and so forth, a merchant website that offers that toastermodel. The user has never registered or made a purchase at the merchantwebsite offering the toaster for sale. Thus, if the user were to buy thetoaster from that merchant website, the user would have to place thetoaster in a virtual shopping cart, then enter personal information suchas address, credit/debit card information, user name, password, and soforth to have the item shipped.

The system, in one aspect, can identify the merchant site based on theinput provided via the unified input field or can initiate the processdirectly from the merchant site independent of a search to arrive at themerchant site. Then the system can navigate to the state in the merchantwebsite where the user would normally click to place the item in theshopping cart. In this case, however, the system will navigate to themerchant website where the item can be placed in the shopping cart, anddetermine that the user is not registered with this merchant website.Then the system can automatically communicate with the merchant website,such as via a new user registration page, or an API, to create a newaccount on behalf of the user using the user data available to thesystem and/or to the browser. Thus, the system can present to the userjust the confirmation in a button to purchase via one click. Theconfirmation can be a double confirmation of authorization to create anew account and authorization to then place the order using the newaccount. The user can automatically authorize new registrations and canestablish settings or preferences governing new profile registrations.The system can then enter all the necessary data, retrieved from thebrowser or some other location, to complete the registration and causethe item to be purchased and shipped without the need of further userinput. This approach can turn non-one-click purchasing websites intoone-click purchasing websites, via input through the unified inputfield. The system can also use the registered payment information toprocess the payment as well and coordinate with the merchant site forfilling the order. The process of obtaining payment data through the APIfor automatically providing payment and/or delivery data can also occursimply between the merchant site and the browser through the API. Themerchant site, at the appropriate state in which the user may make apurchase, can submit a request through the API for payment data whichcan be provided as stored by the browser or agent for simplifying thepurchasing process. The data can also be provided from the browser tothe merchant site via a tokenized process to protect payment accountinformation. The interface the user views can be a combination ofmerchant information (picture of the product, reviews, other date) aswell as a “buy now” or “buy through google” or “Android Pay” type ofbutton which is provided via the API to the graphical interface.

In one aspect, the system stores whatever information is necessary touse the payment request API on the user device. For example, when a useradds a debit or credit card to a payment mechanism, the accountinformation is encrypted and sent to a network server. The server(s)then link up with the user bank to verify the information. The bank cancreate an encrypted device account number that is transmitted back tothe servers and stored on the secure element in the user device. Thesecure element can be embedded in a near field communication (NFC) chipon a device. This number is completely unique to the user device and tothe credit and debit cards (or cryptocurrency or other forms of payment)associated with it.

When the user makes a purchase through the browser API, the secureelement (which is a security chip) creates a unique code and sends that,along with the device account number, to the payment terminal in placeof the card number. The card information, in one aspect, is not storedon the user device or in the servers and it may not be backed up to acloud provider. The unique code is transmitted through the browser APIto the merchant site for processing the payment. Thus, according to thisaspect, the information stored on the user device may not specificallybe the payment account number but is a particular account number whichis associated with the payment account number of the user. The endresult is the same as if the device transmitted the account number tothe merchant site for payment. With some service providers, the deviceaccount number is used to identify the credit card or debit card usedfor the payment.

Processing of the browser API shall be discussed in the next threefigures with traditional processing of tokens or standard paymentsfollowed by a cryptocurrency example. FIG. 11 illustrates a tokenizationprocess 1100 for use with the payment request API. When using atokenized process, a merchant 1104 may need several pieces ofinformation to be able to process the received token from the browserAPI. A merchant may need a unique identifier that represents a merchantassociated with the payment process. The merchant may need a paymentprocessing certificate that is used to securely transfer payment data.Network servers 1110 can use the payment processing certificates publickey to encrypt the payment data. The merchant may use a private key todecrypt the data when processing the payments or the token information.A merchant identity certificate or a transport layer securitycertificate can be used to authenticate a merchant session with networkservers. This process will be illustrated in more detail next.

As is shown in FIG. 11, merchants or applications 1104 will interact1114 with a user or a shopper 1102 as the user navigates through thesite. Once the user decides to make a purchase, they may click on a buybutton and authorize a payment process to initiate. This can alsoinclude a touch ID such as a fingerprint to authorize payment 1116. Suchcapabilities can be enabled in Xcode. As noted above, the merchant 1104has, in one aspect, registered a merchant ID and created a paymentprocessing certificate, which is a cryptographic key that is used tosecurely send payment data to the merchant server. The clicking of a buybutton and providing fingerprint authorization to process a payment caninvolve a single step or can involve multiple steps.

To initiate a payment, the merchant application creates a paymentrequest to submit to the payment request API between the merchant 1104and the browser 1106. This request can include the subtotal for theservices and goods purchased, as well as any additional charges for tax,shipping, or discounts. The merchant can pass this request to a paymentauthorization view controller, which displays the request to the userand prompts for any needed information, such as a shipping or billingaddress. A delegate can be called to update the request as the userinteracts with the view controller 1114. This can also include requestsfor size information, color preferences, social media data like birthdayinformation, or any other information that can relate to the purchase.

As soon as the user authorizes the payment 1116, payment information canbe encrypted to prevent an unauthorized third party from accessing it.In one aspect, the payment request can be sent to a secure element (suchas the secure element used on iPhones to enable Apple Pay with nearfield communication at a merchant site), which is a dedicated chip onthe user's device 1106. The secure element adds the payment data for thespecified card and merchant, creating an encrypted payment token 1118.It then passes 1120 this token to network servers 1110, where theservers reencrypt the token using the merchant payment processingcertificate 1122. The servers 1110 transmit 1122 the reencrypted tokenback to the user device 1106. The reencrypted token represents a secondtoken that is prepared to be transmitted to the merchant site 1104.Through the browser API, the user device 1106 sends the encrypted tokenand/or payment data back to the merchant site 1124 for processing. Otherdata requested can also be transmitted through the API back to the site,such as shoe size, shirt size, pant size, color preferences, stylepreferences, etc. Multiple different calls to the API can be made in theprocess at different stages. For example, several steps prior to apayment request being made, the merchant site might want the sizeinformation so that the user does not have to click “X” or “XL” or “M”for a shirt size. Furthermore, body models are being generated for thehuman body. Data for the user can be stored in a body shape model at thebrowser or accessible by the browser. If the user is looking for clothesonline, data about their body model could be retrieved via a browser APIand transmitted to the site which can adjust the presentation ofclothing for that individual. They could also include data for otherindividuals such that as the user interact with the site, the site couldsay is this for you or your sister, or your wife and their body modeldata could be transmitted such that the clothing could be tailor to theright person. Views of clothing items could then be modified for thatbody model.

In another aspect, a body model, clothing data, for a user and/or otherindividuals associated with the user, or other individuals in general,could be passed to a social networking site. For example, a usersearching Pinterest for an address might be able to view dresses as theywould be presented for the user, or somebody that the user is shoppingfor. Buttons could be presented to the user also, which could enablethem to toggle between the dress as it was originally posted by aposting entity and how the dress would look according to the body modelthat is chosen. An algorithm could be applied such that posting entitiescould simply post clothing, or any item that has a sizing component. Thealgorithm could analyze the item and make appropriate adjustmentsaccording to an individualized body model such that the user could thenget a sense of how that dress or other item would look according to thechosen body model. If the user is shopping for their sister or wife orhusband or any other individual, the user could access that person'sbody model and shop on a social media site, such as Pinterest. Forexample, find an appropriate item, and then click on the interactivebutton or interact in any other mechanism such as speech, and see howthat item would be worn by the recipient. Then the buy action could becompleted to purchase that item. Such an approach could be used onFacebook, Instagram, Twitter, any social networking site, or any othersite, such as a merchant site as well. It could also be applied to anyobject that has a sizing or color component. Thus, toys, cars, campinggear, recreational vehicles, and so forth could all be processed in asimilar manner to get a sense of a more tailored view of the product asit would be worn or used by recipient. If a mother was shopping forthree of her children, multiple body models could be uploaded such thatitems could be viewed, such as jeans, and each individual person couldhave an individual button, presented such that the user could easilyview how that object would be worn by the multiple individuals in thegroup. The user could even then make a group purchase of one pair ofjeans for each of individual in the group. For example, a customizedbutton could be presented which is either a one click purchasing buttonfor three pairs of jeans for each individual in the group or to add onepair of jeans for each individual into a shopping cart.

The merchant site 1104 then, as part of the payment process, calls aREST service (which is known by those of skill in the art for processingpayments) or other similar service with the encrypted token and paymentdata 1126 which communicates the data to a commerce server 1108. Theserver 1108 submits the cart to order 1128 and authorizes the payment1130 to a payment gateway 1112. An “ok” signal 1132 is transmitted backto the commerce server 1108 which communicates 1134 a return paymentstatus to the merchant site 1104. The payment, having been processed andconfirmed, causes the merchant site 1104 to dismiss the payment sheet1136 and display an order confirmation to the user 1138.

In one aspect, the payment token is never accessed or stored on thenetwork servers 1110 which are used to encrypt the payment data andtoken. The servers simply reencrypt the token using the merchantcertificate. This process lets merchants securely encrypt the paymentinformation without it having to distribute the payment processingcertificate as part of the merchant application.

In many cases, the merchant site passes the encrypted payment token to athird-party payment solution provider 1108 to decrypt and process thepayment. However, where merchants have an existing paymentinfrastructure, the merchant can decrypt and process the payment ontheir own server. Reading, verifying, and processing payment informationcan involve one or more cryptographic steps such as calculating an SHA-1hash, reading and validating a PKCS #7 signature, and performingelliptic curve Diffie-Hellman key exchange. It is noted that the aboveapproach represents an example tokenization process for use with thebrowser payment request API. A payment token object can include suchdata as a transaction ID, an amount of money, data about the product,information about payment network, payment token data such as asignature and a header which can include encrypted payment data, and anamount, a cardholder name, a CVV code, an expiration date, a paymentaccount number, payment processing data, and address, other userpreferences, cryptographic currency data, and so forth. Of course, otherprocesses are contemplated as well for tokenization, which can add alayer of security to the process.

In another aspect, the browser may be operational on a first userdevice, such as a laptop computer, and the payment data may be stored ona second user device, such as a mobile device or mobile phone. The firstuser device and the second user device can communicate wirelesslythrough a protocol, such as the Bluetooth protocol. In some scenarios,the first device may not have a fingerprint identification option, whilethe second device does. In this scenario, while the user interacts viathe first device with a browser which is configured to utilize thebrowser payment request application programming interface, the firstdevice, as part of the payment process, will establish a communicationwith the second device such that the user can authorize the payment viaa touch identification, and wherein the second device can be utilizedfor generating a payment token and communicating with a network serverto receive a second payment token which is passed from the second deviceto the first device and through the browser payment request applicationprogramming interface to the merchant site for payment processing. Inother scenarios, the first device includes a fingerprint recognitionmechanism, and thus only a single device is needed for confirmingauthorization of the purchase. The browser can be any user interfaceused to view and navigate sites or applications. The browser API mayalso receive one or more of data about the product, the merchant, keysfor encrypted communication, or any other information such that apayment process could occur separate from passing payment data throughthe API back to the merchant. For example, for security purposes,payment information may be communicated to a separate payment processorwhich can handle the payment so that payment data for the user is notprovided to the site. However, the merchant still must deliver aproduct, so the browser API could have a separate payment processorprocess the payment but pass a user name and address deliveryinformation to the site for delivering the product.

In yet another aspect which relates to processing from a browser orapplication standpoint, an example method includes presenting, on agraphical user interface, a presentation, the presentation beingreceived from a site over a network, receiving, via the user interfaceand from a user, an interaction with the presentation, receiving, via abrowser application programming interface between a browser and amerchant site, a request from the site for payment account data for theuser and transmitting, to the site and via the application programminginterface, the payment account data, or other data, wherein the paymentaccount data can be used to populate payment fields for paymentprocessing on the site. The data can be a token which can be used oncefor a payment and that maintains privacy of the account information. Thepayment account data may just be used by the merchant site forprocessing the payment and may not literally populate fields thatotherwise would be manually populated by user input. For example, ifpayment data is received in a tokenized secure manner, the data may justbe used to process a payment and not literally used to fill in pre-setform fields. The presentation can include one of a product for purchaseand a service. The method can include the site processing a payment foran item or a service using the payment account data for the user. Thegraphical user interface can be associated with a browser or anapplication. In one aspect the API that communicates data between thesite (merchant site) and a browser that can store the payment accountdata for the user. This aspect covers the process from the standpoint ofthe browser that stores the payment/deliver data of the user andcommunicates that data via the API with the merchant site for populatingthe necessary fields (or an equivalent type of process) to create aone-click purchasing experience for the user who is on the merchantsite.

The API can also be used to request body type, sizes, or a body modelfor the user for use in presenting clothing for purchase. In anotheraspect, the merchant site may determine whether the browser API isavailable through the browser being used to navigate the site. If so,then a browser API request can continue, and if not, the site proceedswith a standard input field approach for payment and addressinformation.

The method can further include updating the presentation to include abuy option which is configured, based on a confirmation from the user,to enable the site to utilize the payment account data received throughthe API to process a purchase of an item or service without a need ofthe user to fill in the payment fields on the site. The browser or otheragent communicating via the API can also provide the graphic for a “paynow” type of button to integrate with site graphics. The payment accountdata can further include one or more of address data for the user, apayment account number, an expiration date, a security code, acardholder name and shipping instructions for the user.

The request through the API can further include one or more of asupported payment method for the site, a total amount value for apurchase, items that may be displayed for purchase, shipping options,payment modifiers, a request for a user email address, a request for auser's phone number, and a request to update information. A user agentsimilar to or separate from the browser can communicate the paymentaccount data between the application programming interface and the site.

In another aspect, the method includes the concept from the standpointof the site. The method in this context includes transmitting, forviewing on a graphical user interface, a presentation, the presentationbeing transmitted from a site over a network to a device having thegraphical user interface, receiving, via the network and from a user, aninteraction with the presentation, and transmitting, to an applicationprogramming interface, a request for payment account data of the user.The method includes receiving, at the site and via the applicationprogramming interface, the payment account data and populating paymentdata fields associated with a payment process with the payment accountdata for the user to yield populated payment data fields. The paymentdata may also be in a tokenized format for processing a payment in asecure way that does not reveal the user's account information. Partialaccount information (i.e., the last 4 digits of the account number)could be transmitted for presentation on a user interface to confirmwhich account to use. The site can process a payment for an item or aservice using the payment account data for the user. The API cancoordinate data between the browser and the site wherein the browserstores the payment account data for the user. Upon receiving aconfirmation from the user to make a purchase of an item or serviceassociated with the presentation, the method can include processing apayment for the product using the populated payment data fields.

The method can further include, upon receiving the payment account data,updating the presentation to include a buy option which is configured,based on a confirmation from the user, to enable the site to utilize thepayment account data to process a purchase of a product or servicewithout a need of the user to manually fill in the payment data fieldson the site. The payment account data can further include one or more ofaddress data for the user, a payment account number, an expiration date,a security code, a cardholder name and shipping instructions for theuser. The request can further include one or more of a supported paymentmethod for the site, a total amount value for a purchase, items that maybe displayed for purchase, shipping options, payment modifiers, arequest for a user email address, a request for a user's phone number,and a request to update information. A user agent can also communicatethe payment account data between the application programming interfaceand the site. In another aspect, a method includes presenting, on agraphical user interface, a presentation, the presentation beingreceived from a site over a network, receiving, via the user interfaceand from a user, an interaction with the presentation, receiving, via anapplication programming interface, a request from the site for paymentaccount data for the user, autopopulating a payment field associatedwith the presentation with the payment account data (or just using thedata as necessary for payment processing) and transmitting, to the siteand via the application programming interface, the payment account data,wherein the site can process a payment based on the payment account datafor the user. The method can also include receiving a confirmation fromthe user of a purchase after the payment field is autopopulated.

The system can process the new registration pages silently, such as in abackground tab or new window in the browser, or can negotiate the newregistration process with the merchant website without presenting theregistration page to the user at all. The system can present a progressbar on the same page containing the unified input field after the userrequests a purchase, such as by pressing enter after providing input viathe unified input field. The progress bar can indicate to the user theprogress of creating a new account, entering shipping data, adding theitem to the cart of the merchant website, and placing the order.

The user can establish default preferences for which personalinformation to use for new registrations. The user can establish thesedefault preferences in advance of encountering the merchant website, oreven in advance of encountering the unified input field. Alternatively,at the first instance where a registration is required, the system canprompt the user to establish such settings and/or provide additionalinformation.

The system can prefer merchant websites with which the user already hasan account or with which the user is already registered. For example, ifMerchant X and Merchant Y both offer the same item for sale, the systemcan choose to use the one of these two merchants where the user alreadyhas an account. The system can determine this by examining a browserhistory, profile data available to the browser, or cookies stored by thebrowser or by other browsers associated with the user. The system canintelligently determine when to use a merchant with which the user isnot registered, such as based on a difference in shipping time, or adifference in price. For example, if the merchant with whom the user isnot registered offers the desired item at a price that is at least 25%lower than the merchant with whom the user is registered, then thesystem can create a new account. If the user does not desire to have thesystem create user accounts on his or her behalf, the user can instructthe system to make purchases where he or she already has accounts, or atmerchant websites which allow guest accounts.

However, the system can identify, using the classifier and user profiledata, the merchants the user is most likely to select, and present themto the user for disambiguation. The system can present to the user atable, such as by a JavaScript popup, showing merchants, shipping times,and total price including shipping and tax. The user can simply click ona desired merchant from the table, and the system can automaticallyregister the user with that merchant if necessary, and process the orderwith that merchant. The user only has to make one click to identify themerchant, and the system handles the rest of the steps, therebyproviding a one-click interface into a non-one-click website via theunified input field.

FIG. 12 illustrates another aspect 1200 of using the browser API forcommunicating payment data. After the user has navigated through awebsite and initiates a checkout process 1202, the webpage should createa payment request which is typically initiated when the user clicks the“buy” button. The payment request can include method data, details,merchant cryptocurrency wallet data, and options. The method data caninclude required payment method data that includes payment methodidentifiers, required transaction information, and optional informationsuch as shipping or contact information that should be returned. In oneaspect, the payment amount could be negative and the payment request APIcould be used to process returns or discounts. Of course in this aspect,money would flow from the merchant site through the browser API to theuser's digital wallet or payment account. In this aspect as well, theprocess could essentially be reversed where the user would initiate apayment request from the browser or from a site and any aspect of thisprocess could essentially be reversed where shipping information,discounts, any other data necessary, can be utilized to enable a refundto be processed. Tokens could be used and generated either on thebrowser side or the merchant side with account information and data forprocessing a return or a peer to peer payment. Return shippinginformation, extra charges, or any other data necessary to enable a userto return an item, and receive a refund can be exchanged through thebrowser API in a similar manner as occurs when the user makes a purchaseat a merchant site.

Continuing with FIG. 12, the payment request 1208, can initiate a “show”function 1208, which shows a dialogue 1212 for use as an interface forprocessing the payment. A user's wallet 1214, such as the Microsoftwallet, a cryptocurrency wallet 1214, payment information stored at abrowser or other location, and so forth can be branded or utilized aspart of user interface 1216. The interface could include part of thebasic sale data and can in part include cryptocurrency data such as arecipient public key or bitcoin amount. In this example, the userchooses a shipping address 1218 through the interface.

The shipping information 1220 can be returned from the wallet to thebrowser 1210 which is then passed to the webpage 1204 such that thewebpage can request a shipping cost from a Web server which returns theshipping cost 1224 to the merchant who can then update the price 1226which is passed to the browser 1210 and the wallet 1214. The user canchoose a shipping address 1218 from the UI interface. A payment response1228 is generated for the wallet to the browser 1210 which passes thepayment response through the browser API to the merchant 1206 andwherein the user can make the purchase 1230. A success or failure signal1232 is provided to the merchant who can then complete the process 1234by informing the browser 1210, at which point the purchase is complete1236. While FIG. 12 does not specifically mention a tokenizationprocess, various encryption technologies could also be used to encryptdata or tokenize the data such that the payment request or the paymentresponse passed through the browser API could be a one-time use tokenwhich encrypts the various information needed to process one or more ofa payment, a delivery of payment, and update of user information, and soforth. The process can also be applied to cryptocurrency transactions,although FIG. 13 provides cryptocurrency wallet transactions in moredetail.

FIG. 13 provides some example processing for a cryptocurrency sale viathe browser API 1300. First, a shopper 1302 navigates through a merchantsite 1304 and initiates a buying process 1312. The merchant site 1304can negotiate payment methods, 1314 with the browser 1308 via thebrowser payment request API. In one example, the merchant site couldindicate that it takes bitcoin, Paypal and visa. The browser 1308 candetermine that the buyer can pay with visa or bitcoin. An interface canbe presented 1316 to the shopper with the overlapping payment methodsavailable at the merchant site 1304 and available to the user. 1302.Assume that the user selects bitcoin 1318. Inasmuch as a cryptocurrencyhas been selected, the browser API must initiate the necessary processesto enable the shopper wallet 1310 to be able to send the appropriateamount of bitcoin to the merchant wallet 1306. As part of the API, themerchant can send data 1320 identifying the recipient public key, emailaddress, or other identifying data for the merchant wallet 1306. Thebrowser 1308 can receive this data. The browser can initiate the shopperwallet 1310 in step 1322. The browser 1308 can transmit the amountassociated with the purchase in dollars or cryptocurrency, the merchantwallet 1306 address, or any other necessary data to the shopper wallet1310 in step 1324. The browser API can initiate the transaction from theshopper wallet 1310 such that the cryptocurrency transaction 1326 occursand gets initiated on the Blockchain such that the crypto currenciestransferred to the merchant wallet 1306.

Various confirmations can be communicated in order to finalize thetransaction. For example, the merchant wallet 1306 can provide aconfirmation 1328 to the merchant site 1304 that the cryptocurrency beenreceived. The merchant site 1304 can transmit a confirmation 1332through the API to the browser 1308 which can present a confirmation tothe user via a user interface. The shopper wallet 1310 can provide aconfirmation to the browser 1330 as well. Other communication such astexts, emails, social media, notifications, and so forth could be alsoinitiated based on the confirmation that the cryptocurrency transactionhas been implemented. Other communications could also be initiated whenthe peer-to-peer mining process is complete and the cryptocurrencytransaction is added to a Blockchain. Depending on the type ofcryptocurrency transaction, the timing necessary to carry out thetransaction, and so forth, the present disclosure embodies all thevariations on cryptocurrency processing and communications to and fromrespective wallets and to and from the merchant site, and to and fromthe user device or the browser visit, via the browser API or secondaryAPI. The shopper wallet 1310 can be considered to be a local app on theuser device 1308 which can be initiated as instructed by the browserAPI, or can be a network-based wallet which receives a communicationfrom the browser API 1308 or secondary API, which navigates to theonline wallet, logs into the online wallet, transmits the necessarymerchant data and transaction data to the online wallet, and virtuallyclicks “confirm” to initiate the transaction, all based on a “pay”confirmation via the browser payment request interface, such as is shownin FIG. 3. Any manual interaction that is traditionally needed to sendor receive cryptocurrency can be managed via the browser payment requestAPI and triggered from a simplified one-click type of interface orfingerprint, or voice authorization via a payment transaction process.

The entire goal of the payment request API is to eliminate the need forcheckout forms, to reduce clicks, and to streamline the paymenttransaction process. With respect to crypto currencies, the samestreamlining and form filling can occur through the payment request APImodified for a cryptocurrency transaction between cryptocurrencywallets. Accordingly, any such action that needs to be taken manually inorder for a user to transfer a cryptocurrency from their cryptocurrencywallet can be handled via an instruction from the payment request APIwith the browser acting as the agent with the necessary storedinformation, or received information via the API for populatingnecessary data fields. In one scenario, a token or transactionidentification needs to be communicated to a cryptocurrency wallet whichidentifies the sender and any other data associated with the transactionsuch that the cryptocurrency wallet can recognize or expect thecryptocurrency payment. As can be appreciated, this process willsimplify and enable a much easier cryptocurrency payment process.

FIG. 14 illustrates a method embodiment. This embodiment is typicallypracticed by the browser or device that operates the browser. Thismethod is discussed from the standpoint of that device or that browserthat's been programmed with an application programming interface to beable to present the payment experience for the user that is similar toan Amazon one click purchasing experience without the need of manuallyentering in payment information including cryptocurrency data into acryptocurrency wallet. A method includes receiving, from a site, at abrowser and via a browser payment request application programminginterface that defines a protocol for communicating data between thesite and the browser, a request associated with a potential purchase,wherein the request comprises an identification of a cryptocurrencypayment method accepted by the site (1402), transmitting, to the site,from the browser and via the browser payment request applicationprogramming interface, data indicating that a user of the browser canpay for the potential purchase via the cryptocurrency payment methodaccepted by the site (1404) and receiving, via a user interfaceassociated with the browser payment request application programminginterface, a confirmation from the user to process the potentialpurchase using the cryptocurrency payment method (1406).

The method further includes receiving, based on the confirmation fromthe user and via the browser payment request application programminginterface, cryptocurrency payment information for the potential purchase(1408) and populating a cryptocurrency wallet with the cryptocurrencypayment information to enable the cryptocurrency wallet to make apayment (1410). Other steps can include initiating, via the browserpayment request application programming interface, the cryptocurrencywallet (1412).

The browser, acting as an agent between the cryptocurrency or wallet,the user, and the merchant site such that it's programming as well asthe programming of the site and the programming of the cryptocurrencywallet are modified so as to enable automatic or automated initiationand population of data fields and initiation of a cryptocurrencytransaction. The cryptocurrency payment information can include at leastone of a site address for receiving the payment, a private key of abuyer, a public key of a recipient, an email address, recipientidentification information, a payment amount, and a user comment. Anyother data necessary to populate a cryptocurrency wallet for initiatingthe payment or the recipient cryptocurrency or wallet for receiving thepayment. The browser can act as the agent between any entity or walletnecessary to achieve a cryptocurrency payment. For example, havingreceived the confirmation from the user via a browser payment requestapplication programming interface, the browser can receive, via the APIthe recipient wallet identification data, the cryptocurrency amount, andcan initiate a buyer cryptocurrency wallet and utilize that data topopulate the necessary fields of the buyer cryptocurrency or wallet andinitiate the transaction on the Blockchain. Depending on the type ofwallets used in the transaction, the app location programming interfacecan also communicate with the site which can initiate the recipientcryptocurrency wallet and, if necessary, interact with the recipientcryptocurrency wallet to receive the payment. If necessary, atransaction identification can be utilized to coordinate the transfer ofcryptocurrency.

The cryptocurrency wallet can include at least one of stored locally ona device that is running the browser and web-based. The basicinteractions disclosed herein will essentially be the same whether thewallet is stored locally or is web-based. When the cryptocurrency walletis web-based, the method can further include transmitting thecryptocurrency payment information to the cryptocurrency wallet via anapplication programming interface for processing the payment. This canbe the payment handler API, or any other API. The request can identify asupported payment method used by the site in addition to thecryptocurrency payment method. For example, the request may indicatethat the site accepts bitcoin, visa and Apple Pay.

The cryptocurrency payment information can include a private key that isused to sign a transaction with the cryptocurrency wallet. The methodcan further include transmitting, via the browser payment requestapplication programming interface, data to the site for use by a sitecryptocurrency wallet to receive the payment.

The cryptocurrency payment information can be stored at the browser,accessed by the browser from a separate entity, received from the sitevia the browser payment request application programming interface,received from a third party, or delivered to the site from the thirdparty as instructed by the browser. In another aspect, when thecryptocurrency payment method is selected by a user for a purchase, themethod can further include generating a blended user interface via thebrowser payment request application programming interface which blends apayment interaction interface and a cryptocurrency wallet interface foruse by the user to confirm the payment. In this aspect, the blending ofthe wallet with the user interface is helpful because of thefunctionality which is implemented for cryptocurrency payments. Inasmuchas users have their own cryptocurrency or wallets with respective userinterfaces for making payments, providing a blended interface whichutilizes some aspect of a cryptocurrency wallet with the standardpayment request API interface reduces or simplifies the payment processfor cryptocurrency payments. In another aspect, the browser paymentrequest API could slide up or present a cryptocurrency wallet paymentinterface which is pre-populated with the site identificationinformation, the cryptocurrency amount, and positioned in a state inwhich the user can simply click or state that they confirm thecryptocurrency payment. The graphical information associated with thelook and feel of the cryptocurrency wallet interface can be stored inthe browser and presented as part of the payment request API such thatit looks the same as the user's cryptocurrency wallet interface. Thebrowser, acting as the agent, could then communicate the confirmation,and the cryptocurrency payment data to the wallet, stored locally orweb-based, and initiate the actual transaction on the actual wallet.

FIG. 15 illustrates the method from the standpoint of the site. A methodcan include transmitting, from the site, to a browser and via a browserpayment request application programming interface that defines aprotocol for communicating data between the site and the browser, arequest associated with a potential purchase, wherein the requestcomprises an identification of a cryptocurrency payment method acceptedby the site (1502), receiving, at the site, from the browser and via thebrowser payment request application programming interface, dataindicating that a user of the browser can pay for the potential purchasevia the cryptocurrency payment method accepted by the site (1504) andtransmitting, based on a confirmation from the user to process thepotential purchase using the cryptocurrency payment method and via thebrowser payment request application programming interface,cryptocurrency payment information for use in populating acryptocurrency wallet for initiating a purchase from the site (1506).

Receiving the cryptocurrency payment information further can includereceiving a cryptocurrency payment at a site cryptocurrency wallet fromthe cryptocurrency wallet. The cryptocurrency payment information caninclude at least one of data that identifies the site cryptocurrencywallet and an amount.

When the cryptocurrency payment method is selected by a user for apurchase, programming of the system or the method can perform anadditional step of generating a blended user interface via the browserpayment request application programming interface which blends a paymentinteraction interface and a cryptocurrency wallet interface for use bythe user to confirm the payment.

FIG. 16 illustrates a method example related to the browser API. Themethod can be performed by a browser and include steps of storing, in anon-transitory storage medium of a user client device, payment data fora user (1602). In one aspect, the payment data can include any one ormore of address information, payment account information, a date ofexpiration, a CVV code, a token or code which can be used or encryptedfor providing a payment token for use by a merchant, user deliverypreferences, user size information for clothing, private key informationfor a cryptocurrency wallet, other cryptocurrency data, passwords and soforth. Any data related to processing a purchase can be included inpayment data. The payment data is typically not being associated withany specific site but can be used across multiple sites. Any securitymechanism can be implemented to ensure safe communication of paymentdata or modified payment data to the site for processing a purchase.User size information could also be tokenized when communicated throughthe browser API. When the purchase occurs via the applicationprogramming interface between the social networking site and themerchant site, the social networking site can transmit payment datathrough the application programming interface such that the merchantsite can process the purchase of the product.

The method can include receiving, via a user interface such as abrowser, a click interaction (or voice, or gesture interaction), by theuser, with an object associated with a site presented within the browser(1604), the interaction indicating a user intent to make a purchase andreceiving, at the browser, based on the click interaction and via abrowser payment request application programming interface that defines aprotocol for communicating the payment data between the site and thebrowser, a request from the site for the payment data in connection withthe purchase (1606), retrieving, via the browser, the payment data (or aversion of the payment data that is tokenized or encrypted forsecurity), to yield retrieved payment data (1608) and transmitting, tothe site and via the browser payment request application programminginterface, the retrieved payment data, wherein the retrieved paymentdata can be used to process a payment or deliver a product associatedwith the purchase (1610). In one aspect, the browser can also interactwith another server which can also process payment data such asgenerating a token that is passed back to the browser for communicationto the merchant site. FIG. 16 represents a more traditional browserpayment request application programming interface approach, but can alsoapply to cryptocurrency payments as well.

FIG. 17 illustrates a process from the standpoint of the merchant site.In this case, the method can include transmitting, for presenting via auser interface such as the browser, an object with which a user caninteract, wherein the object includes one of a button, a drop downscreen or a hyperlink (1702). In one scenario, the user can interactwith the system via voice, gesture or other multimodal interaction. Themethod can include receiving an interaction by the user with the objectassociated with a site, the interaction indicating a user intent to makea purchase (1704), transmitting, based on the interaction and via abrowser payment request application programming interface that defines aprotocol for communicating payment data between the site and thebrowser, a request from the site for the payment data stored on a userdevice in connection with the purchase, the payment data being usableacross multiple sites for payment (1706) and receiving, at the site andvia the browser payment request application programming interface, thepayment data (or secure data such as a token based on the payment data),wherein the payment data can be used to process a payment for a productor deliver the product associated with the purchase (1708). The merchantcan submit the payment data or information received to a paymentprocessor for processing the purchase.

As is noted above, in a cryptocurrency aspect of the process, themerchant sites must provide identification information for itscryptocurrency wallet. Thus, through the payment request applicationprogramming interface, the user can select a cryptocurrency for use inmaking the payment and be presented with a cryptocurrency amount forconfirmation. Either before or after confirmation of the purchase, thesites will communicate via the application programming interface, itswallet identification data such as a public key or an email address, orother identifying data. The application programming interface can enablethe browser to act as an agent between the site, the user, and one ormore of the cryptocurrency wallet that need to take actions in order toaccomplish the cryptocurrency transfer. In one aspect, the applicationprogramming interface utilizes the data obtained from the userinteraction and receive from the site to initiate a buyer cryptocurrencywallet, populate automatically the identification information for therecipient wallet, and the cryptocurrency amount, and initiate thetransaction on the Blockchain. If the transaction amount is identifiedin dollars, then, a dollar amount can be used to populate the buyercryptocurrency wallet which can then confirm the correspondingcryptocurrency amount for use in the transaction.

Another aspect disclosed herein relates to the coordination between afirst API and a second API, both of which interface with a browser in acorrelated way to manage a payment process. The approach enablespurchasing on a site to be more like an Amazon.com “one-click”purchasing experience when the user is not registered and does not havean account at the site. In some cases, a user can have a Paypal accountor a cryptocurrency wallet that is local or web-based but they stillmust login to that account to make a payment. The coordination of theAPIs, and the browser acting as an agent between the site and thepayment provider can simplify the purchasing process. A method in thisregard is shown in FIG. 18 and includes receiving input from a userindicating a desire to purchase a product from a merchant site (1802).The input can be a click, voice input as part of a dialog, virtualreality input, or any kind of input. The method includes receiving,based on the input, at a browser and via a first application programminginterface that defines a first protocol between the browser and themerchant site, a payment request from the merchant site for payment dataof the user for purchasing the product (1804).

In response to the payment request, the method includes communicating,from the browser and via a second application programming interface thatdefines a second protocol for communicating payment information betweenthe browser and a payment service (such as Paypal, Amazon Pay, Bitcoin,Ethereum, or any other payment method, a payment request event to thepayment service, wherein the payment service can process a payment forthe product based on the payment request event (1806). The methodincludes receiving, at the browser and from the payment service and viathe second application programming interface, a confirmation of thepayment for the product (1808) and communicating, from the browser andvia the first application programming interface to the merchant site,the confirmation of the payment for the product (1810). The paymentservice can be a service like Paypal, a Google payment service, acryptocurrency wallet or any other payment service or payment processor.The approach enables a common interface between the merchant and apayment service utilizing the browser and several APIs in a new mannerto simplify the purchasing process for users that are signed up for sucha service or utilize such as service.

The first application programming interface can define the firstprotocol for communicating at least one of payment data and address databetween the browser and the merchant site. The second applicationprogramming interface can include the second protocol for communicatingdata associated with payment of the product between the browser and thepayment service. The payment request further can include a request foran address of the user and/or for other data associated with the user orassociated with the purchase. Thus, the payment could be performed bythe payment service provider and the address could be provided by thebrowser through the first API.

The method can further include, based on the payment request,transmitting from the browser and through the first applicationprogramming interface, the address of the user to the merchant site foruse in delivering the product to the user. The first applicationprogramming interface can include a browser payment request applicationprogramming interface in that it involves a request from the merchantsite for payment data and/or other data associated with the user. Thesecond application programming interface can be called a payment handlerapplication programming interface in that it more specifically involvespayment handling by the payment processor. This aspect of the disclosurecan also have embodiments from the standpoint of the merchant as well asfrom the standpoint of the payment processor.

In this scenario, where the payment services a cryptocurrency wallet,the necessary information from the browser via the second API can becommunicated to the cryptocurrency wallet. For example, typically thecryptocurrency wallet, in order to initiate a transaction, needs therecipient wallet identification data such as a public key or an emailaddress, or other identifying data. The cryptocurrency amount needs tobe provided. Other functional interactions can also occur such aslogging into a web-based cryptocurrency wallet such as Coinbase.com,causing buttons to be clicked and functionality to be implemented viainstructions from the application programming interface rather than theuser manually logging in, entering data into the data fields, andinteracting with the objects. The web-based services would be upgradedin the programming to be able to receive API calls just as any paymentservice would need to be upgraded. Thus, the browser can act as theagent between the merchant site, the user, and the locally storedcryptocurrency wallet or a web-based cryptocurrency wallet such that theuser interaction in selecting a cryptocurrency and implementing acryptocurrency payment via a browser payment request applicationprogramming interface, is as simple as possible. All other manualinteractions that flow from confirming a bitcoin transaction can beperformed automatically by the browser via the application programminginterfaces disclosed herein.

FIG. 19 illustrates this aspect of the disclosure from the standpoint ofthe payment processor. A method includes receiving, based on input froma user indicating a desire to purchase a product from a merchant siteand based on a browser receiving, at the browser and via a firstapplication programming interface that defines a first protocol betweenthe browser and the merchant site, a payment request from the merchantsite for payment data of the user for purchasing the product, a paymentrequest event at a payment service, wherein the payment request event isreceived from the browser and via a second application programminginterface that defines a second protocol for communicating paymentinformation between the browser and the payment service (1902),processing, at the payment service, a payment for the product based onthe payment request event (1904) and transmitting, to the browser, fromthe payment service and via the second application programminginterface, a confirmation of the payment for the product, wherein thebrowser communicates, via the first application programming interface tothe merchant site, the confirmation of the payment for the product(1906). In this approach, the merchant is not using their own paymentprocessor as would occur if the merchant were receiving payment accountdata or a token for processing the purchase. Since the purchase is beingperformed by the payment service, the merchant needs that confirmationthat the purchase is complete. The payment service can utilize storedpayment data and/or an account of the user. Thus, payment services likeStripe, Google.com, BrainTree, Amazon.com, Paypal, Bitcoin, Coinbase.cometc. can be represented by payment services. Because the user can belogged into their browser, or a Google account (email, youtube, etc.),the user's credentials can be utilized to login to any specific accountthat is used for payment without the user manually entering in theiraccount data.

In the cryptocurrency scenario, the confirmation can indicate that thetransaction has been initiated onto the blockchain. A later confirmationcan be provided as well when the Blockchain adds a new block after themining process is complete. As this can take a number of minutes, suchas ten minutes, alternate communication channels can also be implementedsuch that the user may receive a separate text or email confirming thecompletion of the cryptocurrency transaction. The payment requestapplication programming interface may linger or be reinitiated with thefinal confirming information as well.

A method performed from the standpoint of the merchant site is shown inFIG. 20. The method includes receiving input from a user indicating adesire to purchase a product from a merchant site (2002) andtransmitting, based on the input, to a browser and via a firstapplication programming interface that defines a first protocol betweenthe browser and the merchant site, a payment request from the merchantsite for payment data of the user for purchasing the product (2004),wherein (1) the browser, in response to the payment request,communicates, from the browser and via a second application programminginterface that defines a second protocol for communicating paymentinformation between the browser and a payment service, a payment requestevent to the payment service, (2) the payment service can process apayment for the product based on the payment request event and (3) thebrowser receives, via the payment service and via the second applicationprogramming interface, a confirmation of the payment for the product.The method includes receiving, from the browser, at the merchant siteand via the first application programming interface, the confirmation ofthe payment for the product (2006).

Any communication amongst the browser, a payment service, and themerchant site using the various APIs disclosed can be part of thisdisclosure to achieve a one-click type purchasing experience by the userat the merchant site. As noted above, the method in FIG. 20 can alsoapply to the payment service being a cryptocurrency wallet which will,as instructed by the browser and based on cryptocurrency paymentinformation (such as a cryptocurrency amount, and a recipient walletidentification), initiate the cryptocurrency transaction. The merchantsite can receive the confirmation of the payment for the product as wellas receive automatic instructions or other cryptocurrency data to enablethe merchant cryptocurrency wallet to be able to receive the paymentfrom the payment service.

Additional concepts regarding a payment processor processing a paymentto a site are discussed next. In one aspect, a method includesreceiving, at a browser and via a browser payment request applicationprogramming interface that defines a first protocol for communicatinginformation about purchases between a site and the browser, a paymentrequest having data associated with a purchase of a product from thesite for a user and, based on the payment request, transmitting, fromthe browser and via a browser payment handler application programminginterface that defines a second protocol for communicating data betweenthe browser and a payment service, a request to process a payment forthe product to the payment service. The method according to this aspectcan include receiving, at the browser and via the browser paymenthandler application programming interface, a confirmation, from thepayment service, that the payment service has processed the payment forthe product to the site.

The method can further include transmitting the confirmation receivedfrom the payment service from the browser and via the payment requestapplication programming interface to the site. The method can furtherinclude transmitting, from the browser and via the payment requestapplication programming interface, address information for the user tothe site for delivering the product to the user.

A method from a viewpoint of a payment processor or cryptocurrencywallet perspective can include, based on a payment request received at abrowser and via a browser payment request application programminginterface that defines a first protocol for communicating informationabout purchases between a site and the browser, the payment requesthaving data associated with a purchase of a product from the site for auser, receiving, from the browser, at a payment service and via abrowser payment handler application programming interface that defines asecond protocol for communicating data between the browser and thepayment service, a request to process a payment for the product andtransmitting, to the browser and via the browser payment handlerapplication programming interface, a confirmation, from the paymentservice, that the payment service has processed the payment for theproduct to the site. In this scenario, the payment service havingprocessed the payment means that the payment service or cryptocurrencywallet receives the proper recipient wallet identification information,receives the cryptocurrency amount, and was properly able to initiatethe transaction on the Blockchain and also includes a reporting elementback through the API to the browser that the transaction was initiated.Again, as the transaction completes, which can be ten minutes later. Insome scenarios, the cryptocurrency wallet can send another finalconfirmation that the blockchain process was successful. Given thedifference in nonreal time processing for cryptocurrency transactions,built into the process is additional confirmations as might be necessarydepending on which cryptocurrency wallet, which cryptocurrency ischosen, the timing required to finalize the transaction, and so forth.

From the site context, an example method can include transmitting, froma site, to a browser and via a browser payment request applicationprogramming interface that defines a first protocol for communicatinginformation about purchases between the site and the browser, a paymentrequest having data associated with a purchase of a product from thesite for a user and receiving a payment for the product from a paymentservice, wherein the payment is received based on the browsertransmitting, based on the payment request, from the browser and via abrowser payment handler application programming interface that defines asecond protocol for communicating data between the browser and thepayment service, a request to process the payment for the product to thepayment service. The method can also include receiving, from the browserand via the browser payment request application programming interface, aconfirmation, initiated from the payment service, that the paymentservice has processed the payment for the product to the site. Themethod can also include receiving, from the browser and via the paymentrequest application programming interface, address information for theuser at the site for delivering the product to the user.

FIG. 21 discloses another aspect of this disclosure related to providinga choice of payment methods. The method includes, in this aspect,receiving, at a browser and via a browser payment request applicationprogramming interface that defines a protocol for communicatinginformation about purchases between a site and the browser, a paymentrequest having data associated with a purchase of a product from thesite for a user (2102), presenting via the browser or a browserinterface, a choice between a first payment method and a second paymentmethod for purchasing the product, wherein the first payment method andthe second payment method each include or require one of payment datastored on a user device, payment data stored on a network server, and apayment service (2104), receiving a selection of a payment method fromthe user of one of the first payment method and the second paymentmethod to yield a selected payment method (2106) and, based on theselected payment method, and in response to the payment request,transmitting, from the browser and via the browser payment requestapplication programming interface, data associated with the selectedpayment method to the site (2108). Where the selected payment method isa cryptocurrency method, transmitting the data associated with theselected payment method to the site can be replaced with transmittingdata from the sites to the browser. Such information is needed in thatthe transaction for cryptocurrency differs in that the site must provideits recipient cryptocurrency wallet identification information such asthe public key, email address, or other identifying information. Thisinformation is then used by the buyer cryptocurrency wallet as well asthe cryptocurrency amount in order to initiate a cryptocurrencytransaction from the buyer to the seller of the product. The browseracts as the agent between the parties, initiates cryptocurrency orwallets, logs into online cryptocurrency wallets, populates data fields,causes objects to be clicked upon, communicates comments, selects from aplurality of cryptocurrency wallets where necessary, and can coordinatebetween different cryptocurrency wallets where necessary in order toachieve the basic transfer of a cryptocurrency from the buyer to theseller. Most of not all of this process occurs behind the scenes such assuch that the user is freed up from manually interacting with wallets inthe normal process. In this regard, the present disclosure can utilizethe programmed wallets, updated browsers with API functionality, updatedmerchant sites, updated online cryptocurrency payment services, suchthat data can be communicated, functionality can be implemented andfrictionless cryptocurrency the purchases can be achieved through thepayment request application programming interface.

The method can include, when the selected payment method includes thepayment service, the steps of, based on the payment request and theselected payment method, transmitting, from the browser and via abrowser payment handler application programming interface that defines asecond protocol for communicating data between the browser and a paymentservice, a request to process a payment for the product to the paymentservice and receiving, at the browser and via the browser paymenthandler application programming interface, a confirmation, from thepayment service, that the payment service has processed the payment forthe product such that the site gets paid.

The method can also include transmitting the confirmation (or otherdata) received from the payment service from the browser and via thepayment request application programming interface to the site. Themethod can also include, when the selected payment method includes thepayment data stored on the user device, performing the step, based onthe payment request and the selected payment method, transmitting, fromthe browser and via the browser payment request application programminginterface, responsive data to the site, the responsive data being basedon the payment data stored on the user device.

The responsive data can include a token generated based on the paymentdata stored on the user device, the token being usable to process apurchase of the product by the site. The site can process the paymentfor the product using the payment data. When the selected payment methodincludes the payment data stored on the network server, the method canfurther include, based on the payment request and the selected paymentmethod, transmitting, from the browser and via the browser paymentrequest application programming interface, the payment data stored onthe network server to the site. The payment data can be communicatedthrough one or more APIs associated with the browser to the site forprocessing.

The method can also include transmitting, from the browser and via thepayment request application programming interface, address information(or any other information) for the user to the site for delivering theproduct to the user. In one aspect, the other information could includea clothing size, show size, shirt size, pant size, etc. such that usercould simply shop for the shoes they want and buy them. There would beno need to even choose the size even their own size. The shoes wouldjust come in their proper size in that the user's size is passed throughthe API.

This concept of multiple payment options from the standpoint of the sitecan include transmitting, to a browser and via a browser payment requestapplication programming interface that defines a protocol forcommunicating information about purchases between a site and thebrowser, a payment request having data associated with a purchase of aproduct from the site for a user, presenting via a browser interface, achoice between a first payment method and a second payment method forpurchasing the product, wherein the first payment method and the secondpayment method each include or require one (or more of) of payment datastored on a user device, payment data stored on a network server, and apayment service, receiving a selection of a payment method from the userof one of the first payment method and the second payment method toyield a selected payment method and, based on the selected paymentmethod, and in response to the payment request, receiving, from thebrowser and via the browser payment request application programminginterface, data associated with the selected payment method to the site.The data can be authenticated data or authorized data in that theauthorization and/or authentication of the data (payment data, userdata, billing information, token, etc.) is achieved through use of thebrowser payment request API and/or and not through an API directed to apayment service or separate network server, except in the case of thepayment handler API discussed herein. When using the browser paymentrequest API, the authorization and/or authentication of the paymentdata, or other data used, is independent of a separate network paymentserver or service. An exception, however, applies with the secondpayment handler API is used between the browser and a payment servicewhich utilizes information from the payment request API to process apurchase, or authenticate a user, or perform other actions, and sendsdata through the payment handler API to the browser, which data can besent or data based on the received data, can be transmitted from thebrowser through the browser payment request API to the site. Anotherexception can apply when a separate service is used to authorize thepayment data, credential data, or any other data but the communicationof requests for such data and transmission of suchauthorized/authenticated data still occurs through the browser API whichis established as a protocol between a site and the browser, and notbetween the site and a payment service or authentication service.

The data associated with the selected payment method can include one ofpayment data for the site to process a payment to purchase the productor a confirmation that the payment to purchase the product was performedby a payment service.

From the standpoint of the payment processor, the method can include thefollowing concepts. Based on (1) a payment request received at a browserand via a browser payment request application programming interface thatdefines a first protocol for communicating information about purchasesbetween a site and the browser, the payment request having dataassociated with a purchase of a product from the site for a user, andbased on (2) a user selection of a payment method from a plurality ofpayment methods presented via a user device, the payment methodrequiring a payment processor to process the purchase of the product,the method can include receiving, from the browser, at the paymentservice and via a browser payment handler application programminginterface that defines a second protocol for communicating data betweenthe browser and the payment service, a request to process the paymentfor the product, processing the payment for the product by the paymentservice to yield a payment confirmation and transmitting, from thepayment service to the browser and via the browser payment handlerapplication programming interface, the payment confirmation.

The browser can transmit the payment confirmation (or related data) tothe site via the browser payment request application programminginterface. In another variation of this concept form the view of thebrowser, the method can include receiving, in connection with a purchaseof a product, a payment request at a browser and via a browser paymentrequest application programming interface which defines a protocol forcommunicating data between a merchant site and the browser for managingpayments, presenting, via a user interface, a first payment method and asecond payment method, receiving a selection via the user interface ofthe first payment method or the second payment method to yield a chosenpayment method and transmitting payment information, in response to thepayment request, from the browser and via the browser payment requestapplication programming interface, the payment information beingassociated with the chosen payment method.

The payment information can include payment data for use by the merchantsite for processing a purchase. The payment information can include aconfirmation that the payment has been processed by a payment processor.

The method can further include communicating, from the browser and via abrowser payment handler application programming interface which definesa protocol for communicating data between the browser and the paymentprocessor, information to the payment processor for processing thepayment. The method can also include receiving confirmation informationat the browser and via the browser payment handler applicationprogramming interface, the confirmation information confirming that thepayment processor has successfully made a payment for the product to themerchant site.

In another aspect, the merchant may generate a unique key for receivinga crypto currency payment. Thus, the data that is communicated via theAPI could be a unique public-key just for that transaction. In anotheraspect, the merchant may have a number of different crypto currencywallets based on the type of transaction, the type of product, the costof the product, the type of crypto currency, and so forth. The browseror some other entity could generate a transaction ID, which can identifythe necessary data in which can be utilized to select a merchant walletfrom a plurality of merchant wallets to use for that particulartransaction. Static or dynamic identification data could be utilized andcommunicated via the browser payment request API for use by the buyerwallet to carry out the crypto currency transaction.

Alternately, data regarding multiple payment options for a singlepurchase transaction can be communicated via the browser payment requestAPI. Rather than selecting a single method of payment, a user mayindicate his desire to pay with multiple payment methods such ascryptocurrency and PayPal. In this regard, the payment processor cancomplete two or more payment processes for the purchase transaction.When the payment processor has successfully made a payment to themerchant site, it can send a confirmation to the browser payment handlerapplication programming interface. The browser payment handlerapplication programming interface does not send a confirmation ofpayment to the browser until the payment processor has successfullycompleted all payment processes for the purchase transaction. In thisway, a user can spend his desired amount of cryptocurrency and pay theremaining balance with another payment method such as a credit card.

FIG. 22 illustrates an example scenario 2200 showing communications viaan application programming interface (API) 2202. A one-search server, aweb server, social media site, payment service, or some other computingdevice can provide services accessible via the API 2202. The servicesprovided by the API 2202 can be accessible from a web server servingpages to web browsers or other web clients, an application for mobiledevices, or from a web browser, such as through a JavaScript call to theAPI 2202. In this example, a browser navigates to a first website 2204,and retrieves the data for the first website, such as HTML, CSS,JavaScript, images, metadata, or other data, from a first website server2206 without relying on the API 2202. Then, when the browser parses thedata for the first website 2204, renders the page, and loads scripts orother executable instructions for the website, one or more portions ofthe data are linked to or reference the API 2202. For example, theattributes or instructions associated with a text field can instruct thebrowser to request search data via the API 2202. The API 2202 handlesthe complexity of how to manage the request so that the browser 2204does not necessarily know or care which server is handling the request,how the data is processed to achieve a result, and so forth. From theperspective of the web browser 2204, data is submitted to the API 2202,and the API provides resulting data or performs a resulting action.Example actions can include providing payment data for processing apayment at the site 2204 or communicating with a payment service at asecond site 2208. Further actions can include communicating with acryptocurrency wallet data and/or instructions to initiate acryptocurrency payment from a buyer to a seller of an item. The textfield can instruct the browser to submit a request to the API 2202 basedon text entered in the text field. Thus, as the user enters the text“buy iPhone 5S 64 gb,” the browser 2204 that has loaded the firstwebsite can submit the text string to the API 2202 character bycharacter, word by word, or at some time interval (such as 250milliseconds). Further, as part of the page loading and renderingprocess, the browser 2204 can submit user data for the user or canestablish, re-establish, or link to an existing session with the API2202, so the API 2202 has sufficient context data about the user to makeappropriate decisions. In response to receiving text from the webbrowser 2204, the API 2202 can analyze the data, determine a response ofone or more actions, web browsing destination, desired item to purchase,and so forth. Then the API 2202 can cull the list of one or more actionsto an N best list, which can be based on the type of device or browserthe user is using. For example, on a mobile device with limited screenspace the N best list can be limited to 3 actions or destinations, whileon a desktop or laptop computer with more ample screen space the N bestlist can be limited to 10 actions or destinations. As part ofdetermining the best actions or destinations, the API 2202 cancommunicate with a second website 2208, which can provide paymentservices, cryptocurrency payment services, or any other service or data.If the action is a one-click purchase action with the second website2208, the API 2202 can, on behalf of the user or the browser 2204,negotiate with the second website 2208 to navigate to the appropriatelocation at the second website 2208, populate the appropriate datafields automatically, create an account (if necessary) or log in to anaccount for the user, receive a payment request through the API from thesecond website when a user clicks on a buy button, respond with paymentdata, make and so forth. The API 2202 can handle all of these tasksautomatically in response to an API request, and pass that informationback to the browser at the first website 2210, which presents thesepossible destinations or actions to the user. If the user selects thedestination or action associated with the second website, the browsercan then directly continue the session with the second website 2208 thatthe API 2202 created or modified. In this way, the API 2202 cancoordinate between websites and automatically enter user data inresponse to API calls and pre-navigate to various actions ordestinations on behalf of the user so they are ready for the user toselect and open. Upon landing on the second website, if a buy button ispresented and the user clicks on a buy button, the second site canrequest payment information through the browser API and receive paymentdata via the browser API such as an account and address or a token forprocessing a payment. Note that FIG. 22 can also be viewed incoordination with FIG. 2 and the use of two APIs 218, 212 for managingcoordination by a browser 206 between a merchant site 216 and a paymentservice 210. In other words, FIG. 22 and FIG. 2 illustrate, in oneaspect, how APIs are used to manage payment data and payment processingbetween a first site and a second site or payment processor.

An example method of applying the use of the API is as follows. Thisexample relates to the unified search input field aspect of thisdisclosure. A method includes presenting an input field on a userinterface, wherein the input field is associated with processing datausing a generalized search engine that indexes and searches bothmerchant websites and non-merchant websites (or any other site such as asocial media site or messenger application), receiving input from a userin the input field to yield user input (which can be other types ofinput, besides input field input, based on the functioning of therespective site), and receiving an interaction associated with the userinput indicating that the generalized search engine should process theuser input. When the user input is determined to indicate a searchintent, the method includes presenting a search result that can includea non-merchant website and receiving a search interaction associatedwith the non-merchant website and transitioning the user to thenon-merchant website. When the user input is determined to indicate apurchase intent, the method includes receiving, via an applicationprogramming interface, data associated with an item from a merchantsite, the item being selected based on the user input, presenting apurchase-related search result that can include a buy now optionassociated with the item, receiving a user interaction associated withthe buy now option and, based on the user interaction, processing apayment for the item via stored payment information for the user at thegeneralized search engine or browser to yield purchasing data. Themethod can then include communicating the purchasing data via theapplication programming interface to the merchant site, whereby themerchant site can manage delivery of the item to the user.

From the merchant side, the process is as follows: A method includesestablishing, from a merchant site, communication between the merchantsite and a generalized search entity (or any site such as a social mediasite or any other application) via a communication interface or anapplication programming interface. The generalized search entityoperates to present an input field on user interface (or otherfunctionality based on the respective site), wherein the input field isassociated with processing data using a generalized search engine thatindexes and searches both merchant sites and non-merchant sites. Thegeneralized search entity receives user input in the input field. Whenthe user input indicates a search intent, the generalized search entitypresents a search result can include a non-merchant site, receives asearch interaction associated with the non-merchant site and transitionsthe user to the non-merchant site. When the user input indicates apurchase intent, the generalized search entity presents apurchase-related search result including a buy option associated withthe user input, the search result including an item offered from themerchant site. The generalized search entity receives a purchaseinteraction associated with the buy option. The merchant side of theprocess is as follows. When the user input indicates the purchaseintent, the method includes, receiving, via the communication interfaceand at the merchant site, payment information from the generalizedsearch entity or from a browser, the payment information associated withthe purchase interaction for the item and processing deliver of the itemvia the merchant site. In this manner, the merchant site or applicationcan communicate and receive communications via the applicationprogramming interface or communication interface to achieve thepresentation and a sale of one of its items.

It is also noted that while FIG. 22 illustrates websites communicatingvia an API, that the API could also enable communication between twoapplications on a device, or could cause communication between a websiteand an application on a device. The API can also be between a browserand a site. The API could also function between a browser and apeer-to-peer blockchain based distributed ledger that receives data forconfirming payment transactions of crypocurrencies. The API is meant tobe the means of two different entities, each of which have differentpurposes or means of interfacing with users, such that coordinationbetween the two entities can be facilitated.

As discussed above, any of the APIs or financial transactions disclosedherein could be implemented through blockchain technology. Thus, anycommunication between a buyer and a seller or products could beimplemented through a contract on a blockchain and payment could besubmitted through user addresses according to blockchain technology. Forexample, a smart contract programmed and implemented on a blockchaincould receive and implement items in the transactions.

Another aspect of this disclosure is how to implement a “one-click” orbuy button purchasing opportunity on a search engine result, aninterface to a merchant site where a purchase can be made, or a buybutton posting on a social network. The concept could also work simplyfrom any application or website where a purchase of an item or serviceis possible. In these contexts, to make the purchasing process moreefficient, the payment/delivery information is stored at the searchentity, social networking entity, a separate agent, a browser, or in anyother location so that the data can be applied to a purchasingtransaction in such a way that the user does not need to manually fillout fields (such as address, credit card number, etc.) to complete apurchase. Filling out these fields prevent more purchasing conversions.The approach disclosed herein can be done through APIs or otherprotocols to request data, retrieve the data, and fill in the paymentforms and give the user a more “one-click” type of experience. This isimplemented for example through the W3C Payment Request API or AndroidPay API, the details of which are described in the priority applicationsto the present application.

However, with a blockchain approach used for altcoin payments, there isno entity that “holds” the payment account like a credit card. There arethree elements to the blockchain and using cryptocurrency to makepurchases. There is an address, a private key and wallet software. Theaddress is where others can send bit coin to the person or entity. Theprivate key is the cryptographic secret by which a person can sendBitcoin (or any altcoin) to others. Whenever a particular altcoin like“Bitcoin” is referenced, it could apply to any type of cryptocurrency.The wallet can also store a record of the amount of altcoin you controlon the blockchain ledger.

Wallet software is the software that a person runs on their own computerto manage their Bitcoin. Wallet projects are provided by companies suchas ChromaWallet, CoinSpark and CounterWallet. Other companies includeCoinprism, Melotic and OneWallet. Typically, to send someone or anentity an altcoin, the sender scans the wallet address QR code orotherwise obtains the address characters for the recipient via email orother means. The sender uses the wallet application to enter additionalinformation about the transaction such as the amount, fee, deliverycosts, etc. When the sender confirms the transaction using their privatekey, a message is broadcast from the owner of the sending address to thenetwork that x number of coins from that address now belong to the newaddress. It is authorized by the sender's private key. After a fewminutes, the transaction will be inscribed in the blockchain perblockchain miners and a confirmation notice can be sent. An altcoinaddress as well as a public and private key is generated automaticallywhen a user set up their wallet. The altcoin address is typically anidentifier of 26-34 alphanumeric characters, beginning with 1 or 3, therepresents a possible destination for a altcoin payment. Sometimes theaddress is represented as a QR code. It can operate like an emailaddress. People with a user's public-key wallet address can send theperson altcoins.

The present disclosure incorporates this functionality and simplifies itin the context of making purchases on the web or a mobile application.What will occur when using Bitcoin, Litecoin (or any cryptocurrency) is,in one example, a new API that coordinates the altcoin payment throughan individual's wallet stored on their device and the purchasinginterface (i.e., a buy button search result, a purchase option on amerchant site or a buy now item posted on a social media site).Components such as storage, messaging, wallet interactions, mobilepayments, identity confirmation, security, and reputation can be managedusing tokens and proper communication protocols of the necessaryinformation to integrate altcoin payments into the Payment Request APIwidely adopted.

It is assumed that a merchant will accept cryptocurrency in thisscenario. Thus, when the circumstances disclosed herein are applicable,and a buy button is presented to a user, the user will be enabled tomake the purchase using their private key to access their altcoin, andthe address of the merchant to be able to receive the payment of thealtcoin. The wallet software can keep a copy of the blockchain—therecord of all the transactions that have occurred in the particularcurrency—as part of the decentralized scheme by which coin transactionsare verified. The wallet can be browser-based, application based, or canbe a separate application or smartphone wallet from Blockchain.info,Mycelium, Coinbased, Electrum or other provider. In other words, oneaspect of this disclosure is to incorporate the wallet into a browsersuch that the user's credit/debit/other payment account is stored, theiraddress, as well as their altcoin wallet. Alternately, a protocol cancommunicate data between a browser (which uses the API between thebrowser and the merchant) and the altcoin wallet. For example, thewallet may share the address and the private key to perform a paymentbut then receive the details to add the payment to the blockchain.

As noted above, for a user to send altcoins to a merchant to make apurchase of an item, the user needs the address of the merchant and theprivate-key part of the buyer's wallet where the software will checkthat they have control over the altcoins to be paid to the merchant. Insome cases people scan a QR code for the wallet address. Usually, thesender (buyer) scans the QR code of the recipient's address and uses thewallet application to enter additional information about thetransaction, such as amount, transaction fee (affirming an amountprespecified by the wallet software), or any other parameters. When thesender submits the transaction, a message is broadcast from the owner ofthe sending address to the network that x number of coins from thataddress now belong to the new address. The operating is authorized bythe sender's private key. The sender may enter in their private key or apassword or fingerprint, voiceprint, or other authorization may be usedto retrieve the sender's private key. The transaction is received almostimmediately at the receiver's wallet application, with an “unconfirmed”status and after about 10 minutes, the transaction is confirmed and canbe inscribed in the blockchain per blockchain miners.

Applying the basic altcoin operation to the current scenario, severalmodifications and novel features must be implemented. The goal is toenable in a simple and easy fashion the ability of a user to choose analtcoin payment as though it was a Visa payment or a Mastercard paymentmanaged through the payment request API, although the altcoin isprocessed in a completely separate way. Currently, for example, in auser's Amazon.com account, several credit cards can be listed and onecan be chosen for a payment. This approach will enable an altcoinpayment for a purchase as well.

Enabling a simple “one-click” ability to choose an altcoin paymentprocess and then handle the payment has some issues. If a user is on amobile device and wants to make a purchase, they will not be able toscan a QR code of the merchant address. Plus, not all buyers will havebitcoin type wallets. Thus, through an API a merchant advertising orposting an interface that a user can ultimately interact with to make apurchase can receive data that the person viewing the advertisement orinterface has a cybercurrency wallet set up and has a profile thatindicates that they might make the purchase through bitcoin or othercurrency. An API can exchange the necessary requirements and data suchthat in the context of an advertisement or other interface in which theuser is in a state in which a purchase intent is indicated or can takeplace, the same kind of authentication used by the buyer's altcoinwallet can be integrated into the interface such that the user will justneed to perform the same kind of function to access their private key.This might be through biometrics, a password, and so forth. Theintegration can include retrieving an amount of money, address ofdelivery, date, merchant, and all of such data with the application andretrieval or receipt of the buyer's private key and use of theircryptocurrency wallet so that the payment can be made in cryptocurrencybut the delivery, management of the life cycle of the product purchaseand delivery and potential return, etc. is handled in the normal fashionby the merchant.

In this regard, assuming that the data indicates that a wallet exists ora user preference notifies a merchant that altcoins will/can be used tobuy products, the advertisement or the graphical presentation willinclude as part of its data the merchant address to which altcoins canbe addressed. In one scenario, the “buy button” could include options touse a stored credit/debit card or any other traditional payment accountor the user could choose a cryptocurrency account. If a traditionalpayment account is chosen, then the processes disclosed herein toutilize the payment account stored at the search entity, social mediasite, browser, other payment agent or other location to either processthe purchase or transmit payment data to the merchant site through theAPI for providing the necessary data for the merchant to process thepayment (i.e., so the user does not have to fill in the forms). Thevarious requests and responses exchanged through the API enables thepayment information/delivery information and/or other information to becommunicated to the merchant site such that the purchasing process issimply and does not require the user to fill out fields in a paymentform.

The process disclosed herein adds the cryptocurrency paymentopportunity. If an altcoin payment is chosen, then the interfaceinteracts through an API or other protocol with the user's wallet toretrieve the user's private key or enable the user to enter the privatekey so that the cryptocurrency transaction can occur and the merchantcan be paid. For example, a one-time use token could be generated whichprovides the address and/or private key to the merchant site such thatit can perform the payment function. Or, the API can receive from themerchant site the amount, merchant address, any other data such as tax,fees, etc., and the API can receive that data and communicate with thewallet or browser to process the payment from the user's altcoin wallet.The altcoin wallet could be integrated into the browser such that theprocessing is performed by Chrome, Mozilla, Internet Explorer, etc. Ifthe API is between the merchant and the browser, a separate API orprotocol could communicate the data between the browser and a user'saltcoin wallet on their device. Again, the actual transfer of altcoin tothe merchant can occur in any component that is workable. It could bethrough the user's altcoin wallet, an instance of the altcoin walletincorporated into a browser, or through the merchant making thetransfer.

Typically, the amount of the purchase in altcoin will have to becalculated because it originally will likely be set in dollars but willneed to be converted into the corresponding value of the respectivecryptocurrency that the buyer will use. The process in this regard couldinclude accessing a data feed which provides a current value of thecryptocurrency in terms of dollars (or any other currency that themerchant is using). This access could be done in real time or near realtime such that when the buyer makes the purchase, the proper value ofthe cryptocurrency is applied to the purchase. That value and data feedcould be presented to the user at the time of purchase and could be partof the buying interface.

The buy button and follow on screens that are part of the purchasingprocess can include a blending of the interface with access to thecyptocurrency wallet for the buyer. Thus, the interface could include aportion that is connected to or triggers payment through a traditionalpayment account, and another portion that is associated with the buyer'swallet for cryptocurrency. The user could be presented with a buy optionto pay with Visa, Mastercard or Bitcoin. If the user chooses thecryptocurrency, then the system enables the interaction with the walletsuch that through accessing automatically or manually, the user'sprivate key is provided or accessed. Passwords, fingerprintauthorization, or manual entry of the private key can occur through thepurchasing interface for the item, whether is it part of a merchantsite, an advertisement, a Google Shopping graphic, a Purchases on Googleinterface (or any search entity interface), any browser image orapplication interface, or the use of a Payment Request API developed byW3C.org. The merchant can provide their address and once the buyerprovides their private key, the transmission of the cryptocurrency fromthe buyer to the seller for the appropriate amount for the product canbe achieved. All of the processes then can follow for the product asnormal, such as tracking, product delivery, communication of deliveryinformation, cancellation, modification, etc. can occur.

In one example, to maintain the user's private key on their device intheir wallet, the process could include receiving a confirmation thatthe user wants to provide the payment through bitcoin. Through an API,the merchant application can provide cost information, a transaction ID,merchant ID, merchant address, delivery charges, taxes, and/or discountdata, etc. The API can communicate the data to the user's walletdirectly or through a browser or a combination of both. The wallet canconfirm and populate its fields necessary for a transaction such as themerchant address, the amount, notes, etc. The typical wallet can bemodified to include transaction ID, merchant ID, user preferences (2 dayshipping) etc. Much of this information, however, can also be providedthrough the API from an agent, the browser, a search engine, etc. Oncethe user's wallet is populated with the data for performing atransaction, the interface at the merchant site or app that the user isinteracting with can then request a password or biometric confirmationto complete the transaction. Alternately, although less secure, the usercould opt for just an automatic processing when the user clicks “pay” ora similarly styled button. With this interaction with the buyinginterface, through the API, a confirmation command instructs the walletto carry out the transaction and transfer the altcoin(s) to the merchantor recipient.

Currently, the payment processing systems for credit cards, debit cardsand so forth are set up for use by merchants. Thus, in the standardpayment approach through the API, the payment account information ispassed from the browser or other agent to the merchant site through theAPI for payment processing. The payment account data can be transmittedto the merchant in a secure, one-time use fashion and configured suchthat the payment can be processed but the merchant cannot store theuser's payment account data. However, if the user chooses an altcoinpayment approach, it is unlikely they will want to send their privatekey to the merchant. Processing the altcoin payment differs from astandard Visa/Mastercard type of transaction. Accordingly, in oneaspect, the API will receive from the merchant their address, amount,and/or any other data needed to complete an altcoin payment. The API canthen provide that data to the user's altcoin wallet, whether the walletis separate from a browser or other agent or integrated into the browseror other agent. The altcoin wallet then can make a payment to themerchant address of the amount of altcoin to pay for theproduct/service. A transaction ID can be associated with the productpurchased. Notifications can then proceed to be communicated through theAPI back to the merchant. The user through the interface can be notifiedof the progress and of what is happening at the back end (“Amazon issending data to your Bitcoin wallet for processing a payment” . . .“Payment confirmed of 1.2 Bitcoin for the Television”). If the user hasmultiple different altcoin wallets, they could be processed in a similarfashion in parallel. I.e., the user may be able to choose whether to paywith Bitcoin or Litecoin (or any other altcoins that they own).Depending on which is chosen, the particular processing to access thatrespective altcoin wallet is carried out for payment.

The above approach enables an integration of the use of cryptocurrency,even with its completely separate blockchain based payment process, withother standard forms of payment and payment processing through an APIsuch as the Payment Request API which simplifies the purchasing processby removing the need of a user to fill in payment form fields with name,address, payment account data, etc.

An example method of this approach can include receiving an indicationthat a purchaser has an altcoin account, presenting an option to make apayment using an altcoin account, and receiving a confirmation to usealtcoin. The method includes communicating from a merchant site throughan API with a browser or agent to provide information about a purchaseof an item. The altcoin wallet can be configured as a separateapplication or integrated into a browser or other agent process orcomponent. The altcoin wallet receives the data about the purchase andprocesses the payment to the merchant. The wallet can populate its datafields with the information received through the API from the merchant.The altcoin wallet can include the ability to communicate the paymentdetails through a protocol to the browser or through an API back to themerchant. The merchant site interface can communicate updates to thepurchaser of the success/failure of using their altcoin account to makethe purchase. A data feed can be accessed to provide current pricing interms of dollars. If the item is $20 to buy, then at the time of thepurchase, the user can see that it would cost say 0.02 Bitcoin to makethe purchase and they have 5 Bitcoin currently. The embodiments caninclude the processing as disclosed herein from the viewpoint of thealtcoin wallet, the browser, an agent, a smart contract, either side ofthe API or APIs, and/or the merchant site. Therefore, claims can bedirected to any component in this process and in any configuration (i.e,the altcoin wallet separate, or integrated into the browser, etc.). Theultimate goal is to make payment through altcoin as easy as a“one-click” purchase is for a Visa type payment.

The processing for such payments could also be achieved through the useof a smart contract. FIG. 23 illustrates a system 2300 in which the useof a smart contract 2308 renders a standard purchasing transaction astrustless. The smart contract 2308 is a program that can be implementedon the blockchain and that performs certain actions in a trustlessmanner. In other words, it performs its operations in a known andtransparent way using the distributed approach of the blockchaintechnology. Smart contracts are autonomous, self-sufficient anddecentralized. They automatically run and perform the programmedfunctions. There is no need to “trust” a human to perform one part ofthe contract. In one example, a smart contract 2308 can be used for allor part of the processing disclosed herein. For example, assume that theuser interface viewed in a browser 2304 on their device 2307 shows amerchant site 2302 which provides an option for a user to buy an itemusing their altcoin. The user confirms the purchase with a “pay” button.The amount say is 1 Bitcoin. The instruction or confirmation of thatcommitment by the purchaser can be transmitted with 1 Bitcoin to a smartcontract 2308, operating on a blockchain technology. The seller of theitem can perhaps confirm that they have the product and can delivertomorrow. The smart contract 2308 can transfer the 1 Bitcoin to themerchant 2302 and send a notice to the buyer that the item is on the waybased on delivery service data provided to the contract 2312. Forexample, if the buyer buys a pair of shoes, the system can coordinatethe expected weight of those shoes to the weight of what the merchantdeposits with UPS or other shipping service, much like the automatedcheck-outs in grocery stores weigh products that you scan, to confirmthat the proper product is being delivered. That confirmation can beprovided to the smart contract 2308. Or, the smart contract 2308 couldbe programmed to deliver the 1 bitcoin to the merchant wallet 2322 whena delivery confirmation occurs. At some stage, the communication andtracking of the packet can transition to a normal tracking andnotification process 2312 such as is operated by Amazon.com for managingpurchases made, return policies, etc. If a return is to be made, themerchant 2302 can transfer 1 Bitcoin to the smart contract 2308 whichcan then make a payment according to its protocol to the purchaserwallet 2320. Thus, in this respect, the disclosure covers allcommunications, requests, responses, and data communicated between amerchant site 2302, through an API, to a browser 2304, altcoin wallet2320, 2322, smart contract 2308 and/or other agent to achieve aone-click purchasing option of using altcoins for payment in the samefashion as a regular payment account. Because of the different way thataltcoins are used, current API's like the Payment Request API must bemodified to accommodate the alternate payment structure of altcoins. Byextending the API and including the components of the altcoin walletand/or smart contract to carry out functions in the process, animprovement to the way purchases are made can be implemented to add theability to pay through altcoins.

Yet another aspect of this approach could be payments to the user'saltcoins wallet 2320. For example, with the altcoins structure in placewhich can include the buyer's address and the merchant address, altcoinspayments could flow both ways. Thus, small incentives could flow tousers. Currently, if an advertisement is clicked on as part of a searchengine result, the search engine gets paid. Integrating the user'swallet 2320 into the process could enable the advertiser to pay thebuyer that clicks on their advertisement some altcoin. Graphics couldshow for example how much altcoins a user generates by clicking on theadvertisement and browsing content on the merchant's site. When the userarrived at the state in the navigation where a purchase is made, theuser could apply the altcoins they made via browsing to the purchase orkeep them. All balances and adjustments at the conclusion of thepurchase could be implemented in any fashion, including throughsubmission to a smart contract. Special rates, discounts, incentives,etc. could be provided through credits to the user's altcoins walletwhich are completed or finalized at the conclusion of a sale. Suchcredits could also automatically be made throughout the process. Thus,when a user clicks on an advertisement, altcoins could be transferred totheir altcoin wallet automatically through the integration of theiraddress with the browser/agent, or a promise to transfer altcoins of acertain amount could exist or be presented such that the final actualtransfer occurs if the user clicks through and buys a product on thesite. The transfer could even occur if the user does not buy withaltcoins but with dollars or some other currency. This aspect covers allthe variations on how a merchant would provide altcoins back to buyersas they interact with their site or through other means such as texting,emailing, social media interactions, and so forth. If a user likes amerchant or non-merchant site, that site can send altcoins to the user'swallet. This will enhance the user's experience and encourage them toengage more with the merchant or other site.

Another aspect could be using the blockchain to store and maintainknowledge about browser API transactions. A blockchain 2308 is adistributed database that maintains a continuously growing list ofordered records called blocks. Each block contains a timestamp and alink to a previous block. By design, blockchains are inherentlyresistant to modification of the data—once recorded, the data in a blockcannot be altered retroactively. Through the use of a peer-to-peernetwork and a distributed timestamping server, a blockchain database ismanaged autonomously. Blockchains are “an open, distributed ledger thatcan record transactions between two parties efficiently and in averifiable and permanent way. The ledger itself can also be programmedto trigger transactions automatically.”

Blockchains are secure by design and an example of a distributedcomputing system with high byzantine fault tolerance. Decentralizedconsensus can therefore be achieved with a blockchain. This makesblockchains suitable for the recording of events such as purchasingtransactions as disclosed herein.

The first blockchain was conceptualized by Satoshi Nakamoto in 2008 andimplemented the following year as a core component of the digitalcurrency bitcoin, where it serves as the public ledger for alltransactions. The invention of the blockchain for bitcoin made it thefirst digital currency to solve the double spending problem, without theuse of a trusted authority or central server. The bitcoin design hasbeen the inspiration for other applications.

For example, one could develop a blockchain record of all purchases madethrough a particular browser, for a particular user. The blockchaincould also be narrowed down to tracking transactions using one paymentaccount available through the browser API. So if a user has a VISAaccount available and Apple Pay, all payments using the visa accountcould be maintained on the blockchain. Or it could be purchases madethrough the API that are stored. In this regard, the API could bemodified so that the data associated with the transaction, which coulduse one or more of the pieces of information associated with thetransaction (name, address, payment account, product, price, discountsprovided, time of order, time of delivery, taxes paid, etc., whether itwas a gift, returned items, follow on history of the purchase, contextof purchase such as advertisement on Facebook, or transition from aGoogle ad, etc.) The structure of such a blockchain could be accessibleto other services. The management system that utilizes information aboutpurchases to help a user can draw upon information in the blockchain forthat transaction or for that browser. Other transactions such asAmazon.com purchases could also be input to the blockchain for that useror that account.

The claim could cover receiving information about a purchase made viathe Internet and creating a blockchain record utilizing the information.As later purchases are made using the account, API, browser, PWA, App.,person, etc. can be added to that blockchain to record and makeavailable the information.

The problem to be solved is as you buy products across the web using thebrowser API, how does one access the ease of managing those purchases,tracking the purchases, cancelling a purchase, changing parameters(shipping model), and so forth. There is no mechanism for a person to goto one place where they can see all of their various purchases. If eachpurchase for a user is added to a blockchain, private or public, andthere is an API or mechanism for reporting purchases across the internetto a blockchain that is continually built based on each purchase thenthis disclosure also provides the ability to then access that data foran individual. Access to the blockchain for that individual could begranted as part of the authorization for a purchase (fingerprint forApple Pay or CVC code for a VISA purchase), an agreement could includethat when the user authorizes the payment that includes an authorizationto add to or access their blockchain of purchases.

If the user is basically accessing their purchase history to makechanges or track a purchase, the user could authorize access to theirdata through a user interface and when that access is granted,information on the block chain can be converted into a user interfacesimilar to the listing of products purchased on Amaazon.com but acrossmerchants and/or apps. In one aspect, too, a user could sell access totheir blockchain. Users may make money by offering people access totheir blockchain. Some information in that case could be anatomized suchas their name and address. The data could be provided on an anonymousbasis such that the data is provided for product, time, context, and zipcode but not name, address, account number, etc.

In one aspect, a merchant site will receive the payment informationthrough the API as a tokenized payment or as a payment account number,name, expiration date, etc. The process with the blockchain can use thatinformation in whatever form it is to identify which blockchain toaccess to append the data of the current transaction. It could also beaccessed through some other mechanism like the user's name or another IDnumber associated with the browser.

Further, the blockchain may be identified by the user identity and thusmultiple accounts could be associated with the user and stored on thesame blockchain. Other data such as the user's body model which storestheir shirt, pants, shoe sizes and other body related data can also bestored in the blockchain.

The blockchain could be built from browser API purchases or any otherpurchase including brick and mortar purchases. A user could sign up fora service that would cause each purchase using their various accountsthat they use to be reported to a blockchain service such that the usercan access all of those purchases from a single user interface, similarto how users can access and manage the history of purchases. Ablockchain service can be established with an API that companiesinteract with whenever the user makes a purchase, whether it is on line,at Amazon.com, through the browser API, etc. A parameter could be setassociated with the payment account or user account such that a certainset of details associated with the purchase are communicated to theblockchain service API. Thus, if a person purchases a book on Amazon.comusing their stored VISA account, the details of that purchased can becommunicated through an API to a blockchain service provider who createsa block for that purchase. Next, the person buys a hammer at Home Depotusing the VISA card. Because the parameter is set, the details of thepurchase including one or more of the purchase of the hammer, the time,the location, etc. can be communicated to the service via the API andthat purchase can be added to the blockchain. Next, the question is howdoes the user gain access to the data of all those purchases? The usermay want to go back and return the book. Where people are makingpurchases across different merchants and different payment approaches(some merchants will use a shopping cart, others will use the browserAPI, Amazon.com, in person, etc.) users will desire to have all of theirpurchases available for management at one location. The blockchainservice can offer a management user interface which presents to the userthe purchasing history and status. The blockchain service can alsoreceive tracking information from distribution entities (FedEX, UPS,etc.) through an API that can associate a tracking status with theparticular product and include updated data on the block chain. Thus, inthis respect, the blockchain can be continually updated. The blockchainservice can present the information via the user interface. The accessto the user interface can be via a website, an app, a browser APIinterface, a selectable object or a selectable menu via social media, ina digital wallet interface, or an Apple Pay interface or Android payinterface, etc. In other words, at any virtual location where the user“is”, a selectable object can be presented which enables the user accessto the purchase management interface. The selectable object can also bepresented at multiple locations available to the user including optionswithin the browser. For example, in Amazon Assistant or another pluginto a browser, the service can provide an updated listing of previouspurchases and their status. The underlying data for this status updatecan be based on the blockchain.

Further, the information that can be stored in the browser, such aspayment account, address, etc., can be stored on the blockchain andaccessed from the browser. A separate API could also be called to aservice which stores that information on the blockchain and returns thepayment account data, a token, address information, name, etc. Thus, theblockchain could hold the information rather than the browser, and oncethe browser receives an API request for payment information and/or otherinformation associated with a purchase, the browser can access from theblockchain the necessary information. This can occur in several steps aswell. Further, the merchant site could also access the information fromthe blockchain as well through an API directly to the blockchain ratherthan through the browser functionality. Using this approach, anindividual could store in one blockchain their payment information,address, etc. and any site that needed that payment information couldsecurely access it through the appropriate API. A digital wallet on adevice could be the mechanism to access the blockchain with theinformation. The browser (any time “browser” is used it also can cover auser interface or an agent for the merchant), once it receives an APIrequest, could identify that rather than having a visa account stored inthe browser, that the blockchain digital wallet (or access agent) is tobe used to obtain the information. The browser communicates with theaccess agent to retrieve the information from the blockchain and returnit to the browser. The browser communicates the information through thebrowser API to the merchant site for payment processing.

Another aspect of smart contracts is discussed next. The implementationof the W3C payment request API and the payment handler API is expanding.The payment request API has been implemented or is in development, forall of the major browsers in the world. A follow-on API is the paymenthandler API, which will enable web-based payment services such as PayPaland others to be able to tap into this payment ecosystem. The paymentrequest API enables locally stored payment information to be accessedvia the browser and transmitted to a merchant site along with any othernecessary data to complete the transaction and the handle a delivery ofthe products to a recipient. One result of this new ecosystem is that itbrings a one click purchasing element, which was only previouslyavailable on Amazon.com or Apple (through a license of the Amazon oneclick purchasing patent). Amazon grew to be very popular because of itssimplified payment process and trusted environment for handling salesand easy delivery of products.

With these new APIs, any mom and pop website can implement a similarpayment functionality which can increase sales and conversions. This isparticularly true on mobile purchases. Cryptocurrencies, web basedpayments, peer to peer payments, basic card payments are all beinghandled through one or more of these APIs. However, there is still anissue with respect to trust. Users typically can trust the Amazonenvironment to provide good service and that the merchants from whichpurchases are made in Amazon.com are legitimate and will deliver theproducts and not miss use the payment information. One benefit of theAPIs discussed above is that the user does not have to register theircredit card at many different websites across the Internet. The APIs canprovide one use token which is created for that particular transaction.

A problem still arises, however, if a small merchant site is dishonestand utilizes the API to process a purchase but then does not deliver theproduct. Further, buyers may inappropriately request chargebacks fromsmall merchants which is also fraud. Internet fraud cost billions ofdollars a year, and with the increase in online purchases and mobilepurchases which will continue to grow with the payment request API, theproblem is only going to increase. While the payment request API willhelp to solve some of the problems with sensitive data being stolen fromonline merchants, because credit card information no longer have to beregistered with multiple merchants online, the problem still exists.

Fraudsters adapt to many of the previous tactics which have beendeployed to try to prevent online fraud. Many companies implementexpensive protection models, such as fraud scoring models addressverification services, IP geolocation, and so forth. They try and studytransactions to determine whether a transaction raises a red flag in anautomated process that is then handed off to a review team for furtheranalysis. Merchants also worry about fraud in terms of fraudulentchargebacks by customers. Expensive analysis occurs in which merchantstry to identify patterns and fraud and such chargebacks and adjust theirprocesses accordingly. They can gain some benefits and efficiency andcustomer service.

Historically, large online merchants have experienced a greater decreasein fraud compared to other merchant types. These large merchants havethe resources to utilize fraud prevention practices as described above.With the implementation of the payment request API, one click typepurchasing will be available to any merchant, large or small. Thus, theneed for greater fraud protection for any merchant of any size iscritical. The solution proposed herein provides an inexpensive andefficient solution to product fraud prevention in online sales and cancompletely eliminate the large ongoing investment in fraud. Fraudprevention according to previous efforts is very costly and complicated.

For example, a company called Verifi provides fraud and risk managementservices and outlines a number of tools which they use, such as a fraudscoring model, multi-merchant purchase velocity, paid for public recordservices, card verification number, shared negative lists, socialnetworking sites, device fingerprints results, customer order history,contact customer to verify order, payer authentication, address ofverification services, two factor phone authentication, contact cardissuer, and so forth. These manual processes and developed systems arevery expensive to manage.

One solution which is disclosed herein for alleviating this trust issueand the high cost of fraud prevention and risk management is toimplement smart contracts for transactions that occur as part of thepayment request API and/or payment handler API. These APIs receive basicinformation about the product, the sale price, the user's address, andso forth. The information that is exchanged now, or that could beexchanged with modifications to the APIs, will enable a blockchain smartcontract to manage the transaction and prevent or eliminate fraud.

A smart contract is a piece of computer code that is capable ofmonitoring, executing and enforcing an agreement. The code basicallysays if X occurs than do Y. That is not a new concept. However, thesmart contract coding combined with the potential of the Blockchain tointeract with multiple financial systems, cryptocurrency wallets, useraccounts, and so forth, enable a new era of managing financialtransactions. A smart contract can be placed on a public permissionlessBlockchain that can control the execution of the agreement such that itis no longer in the hands of a single party in the interaction and nolonger be limited to a closed system, such as a centralized bank ledger.The proper execution of the contract would be verified by the network ofcomputers connected to the Blockchain. The same network would update theBlockchain to record the execution of the contract and monitor theBlockchain for compliance with the terms of the smart contract.

The types of transactions that are envisioned here are simple saletransactions of products, although of course the principles can apply toany purchase. These transactions are typically between two privateindividuals such as a seller and the buyer. In one example, a smartcontract can handle the sale of the car between two private individuals.Having agreed upon a price, they could use a standardized smart contractto input the price and the vehicle registration details. The smartcontract can execute the agreement by verifying that the seller is thetrue owner of the vehicle and transferring the cash and thenreregistering the vehicle in the name of the purchaser. Third partyservices can provide through an API or other means data needed for thesmart contract.

Typical sales on the Internet are not as complicated in terms of needingto transfer title of a vehicle to a buyer. However, a smart contractcould underlie every Internet purchase via the browser payment requestAPI. If a user buys a pairs of shoes from small merchant.com, and viathe browser payment request API, the user clicks on the pay button andthen enters in their CVV code to complete the purchase, an aspect ofthis disclosure is that from that interaction, namely from the browserpayment request API interaction, a smart contract could be created whichreceives the information about the sale price, receives a confirmationof the product from the seller, and could even tap into such informationas delivery progress via tracking facilities which are known to those ofskill the art. The smart contract could hold in escrow dollars, or holdcryptocurrency, such as bitcoin or ethereum, to the seller until afterthe product is confirmed to be in transit to the recipient, orcompletely delivered. The users could even interact with the browserpayment request API interface with additional options for even creatingthe smart contract or selecting terms of the smart contract. The APIcould also negotiate which smart contract to use based on the product,availability of delivery tracking services, verification services, andso forth. For example, if Apple Pay is used with fingerprintauthorization, a certain smart contract might be applied for thattransaction. An omnibus smart contract could also be used that is justpassed parameters to turn on and off for that sale.

For example, as part of the API interface in which a user is selectingtheir visa card stored within the browser and selecting a deliveryaddress, an option could be presented to manage this contract on a smartcontract basis on the Blockchain. Perhaps both the buyer and the sellerwould need to agree to such an approach at which point the details ofthe transaction could be accessed either via the browser or via anotherAPI, which can receive the same basic kind of data that is communicatedto the browser payment request API so as to implement the contract on asmart contract and the Blockchain. The browser again can act as an“agent” of the transaction and communicate with an API to the smartcontract all of the necessary data to manage the progress of delivery ofthe product and distribution of the payment.

In this scenario, the buyer would then not have to trust the seller withthe fact that they actually have the shoes and actually will deliver theshoes in exchange for their payment. Those terms can be exchangedproperly on the Blockchain and in the smart contract without the need totrust the other party. This approach is highly beneficial because therewill be a shift of purchasing capability and transactions away fromamazon.com and into more individual websites and sites as e-commercecontinues to expand. The more trust the can be built into transactionswith these various sites, the higher the likelihood of successfultransactions and customer satisfaction.

In another example, a system could be implemented to evaluate a websitethat the user is accessing and surfing for products. If there's anyquestion about the viability of the site, the system could cause a flagto be turned on, which would implement the potential for an interactionvia the payment processing interfaces for the user to implement a smartcontract to carry out the terms of the sale. A merchant website could beprogrammed to either automatically accept a smart contract for handlingthe sale, or reject such an approach. Furthermore, merchants mayautomatically implement a smart contract approach. If that is availableor possible via the payment methods that the user has available.

For example, if the user has an Ethereum wallet, then the opportunity touse a smart contract can be established and they could pay via Ether andan option could be presented. If they choose Ether over their visacredit card for the payment for that item, the smart contract could bethen used.

In another aspect, if the user does choose dollars via visa or debitcard and so forth, and yet they want the transaction to occur via asmart contract, in one aspect, the dollars to be converted into a cryptocurrent which can then be entered into the smart contract such that thecrypto currency can be delivered by the smart contract upon theconfirmation of the sellers performance.

Now, one aspect of the communication between a site and a browser viathe payment request API is the coordination and matching of paymentmethods available and used by the site and payment methods offered bythe user. For example, if the site accepts bitcoin, PayPal, and Applepay, and the user has a visa credit card and bitcoin, then the matchingpayment method would be bitcoin and that's what would be presented inthe API interface. In the present scenario, an exchange of informationcould also be provided with respect to whether the contract or the saleshould be managed by a smart contract on the Blockchain. For example,the site might be programmed to be able to provide data to the smartcontract about the proper availability of the product and that they usea delivery service also communicating with the smart contract, but thebrowser may not be updated or the user may not have authorized the useof a smart contract. Accordingly, one aspect of this disclosure is thecoordination and determination of whether a smart contract is availableand if the technical capability exists to be able to carry out thetransaction on a smart contract. This disclosure covers all of thenecessary inquiries and replies, and can include the communicationsbetween a site, a browser, a separate web payment application, a smartcontract, and any other services that might be associated with thetransaction. This coordination will be used to evaluate whether bothparties have the technical capability to implement on a smart contract.

Assuming that the transaction will be managed on a smart contract, thefollowing example will help establish the functionality.

FIG. 23 illustrates the basic elements 2300 of a transaction. A site2302 is going to sell a product, service, software, or any other item.The buyer is using a browser 2304 that communicates with the site viathe payment request API as set forth in the W3C standard. The API couldalso be a proprietary API such as the Apple Pay JS API. All of thedetails of these standards are incorporated herein by reference. Thepayment request API can provide payment data stored in the browser orembedded within the payment application 2305 on a device 2307 that'srunning the browser 104 where online payment services like PayPal, orany other payment service might be utilized, the payment handler APIcommunicates between the browser and the web payment app 2306. Otherproprietary or platform specific APIs could also be used.

Ultimately, in any of the scenarios of payment to the sites 2302 by theuser, data is transmitted through the payment request, current API tothe site. The API might transmit a credit card number, a token, anencrypted packet of data, and so forth which the site can utilize toprocess the payment for the item. The payment request API might transmita confirmation received from the payment handler API that a web paymentapp 2306 has already paid the merchant for the product. We recognizethat the eco-system that has been developed by W3C enables a variety ofpayment methods to be made available in one simple system.

Let's assume that the site 2302 is selling cars. The user wants topurchase a car online. The buyer through interactions with the browserand the website of the seller commits to purchase the car. If a smartcontract is going to be used to manage the process, then funds from theseller are stored in a smart contract 2308. The way this could occuraccording to the payment request API, is that the data that istransmitted through the payment request API and/or the payment handlerAPI that contains the token or the credit card amount, and credit cardinformation, rather than being delivered to the site for paymentprocessing, could be delivered and held at the smart contract 2308. Inother words, the response component of the payment request API, whichincludes the core payment processing data which the site may either useto process the payment itself, or utilize the payment gateway such asstripe or some other service which receives the one-time use token andprocesses the payment, could essentially be rerouted to the smartcontract for holding. This is an ideal scenario, where in manysituations, the proper data associated with the payment amount, thepayment method, and so forth are encrypted in the one-time use token. Insome cases, using the smart contract, the data may need to bemanipulated to be in the proper form and usable by the smart contract.For example, if a basic card component is used, and the payment requestAPI is simply transmitting a credit card number, expiration date, name,and so forth, to the site, part of this process could be to preprocessthat information and tokenize it into a form usable by the smartcontract. Cryptocurrency could of course also be stored in the smartcontract as well. Conversions from dollars to cryptocurrency or anyother format used by the various payment methods could also be used.

The smart contract could also be programmed to receive any type ofpayment data and store that data. For example, if the data is simply thecredit card number, the smart contract can hold that number and thenprovide it to the site at the appropriate time, and then forget thenumber. The smart contract could be flexible enough to adapt to anypayment approach. The payment information may also come from the webpayment at 106 and be provided to the smart contract 108.

Now if the user is buying a car, assume that the buyer has seven days tohave the car inspected. The smart contract holds the funds provided bythe buyer. The title to the car could come from a data source 2310 andalso stored in the smart contract. A digitized version of the titlecould be established and verified after seven days, by the smartcontract 2308 which can automatically release the funds to the seller2302 and the title to the buyer 2304. However, before seven days, if thecar fails the safety inspection, or needs repairs more than, say 10% ofthe purchase price, the funds can be returned to the buyer and the titleis returned to the seller. The data 2310 can represent input fromsources associated with the transaction. For example, if the buyermechanic agrees that the car fails the safety inspection, thatinformation can be provided to the smart contract. If the seller manicmechanic agrees, that information would be provided to the smartcontract 2308. Accordingly, data 2310 is meant to represent anyauthorized party that has data relevance to the transaction. The paymentrequest API and/or payment handler API can include selectable graphicalor audible options which can be included within the terms of the smartcontract. Timing elements, amounts, or any term of the smart contractcan be presented as an option via the payment request API.

Returning money to the buyer could be returning crypto currencies whichare being held in the smart contract back to the buyer or could simplyinvolve deleting the payment data stored in the contract. For example,if the smart contract 108 is storing a token which embodies the amountto be charged, and the visa account of the buyer, that information couldsimply be deleted and thus not charged if the terms are not met.

Where a user is purchasing a product on the Internet, one aspect of theprocess could include the smart contract 2308 holding the payment datafor the transaction and then confirming delivery information from adelivery service 2312. For example, once the delivery service reported apackage delivery at the home of the buyer, the smart contract 2308 couldautomatically release the payment to the merchant 2302. Again, thisreleasing of the payment to the merchant could embody multiple differentpayment methods. For example, the smart contract 2308 could provide thepayment information, token, or any other form and payment data directlyto a payment processor 2316. A payment gateway could be in communicationwith the smart contract 2308 to handle this process. Typically, it isanticipated that the smart contract 2308 would release the payment bysimply providing the payment data to the site 2302 in the same structureas is being established through the protocols of the payment requestAPI. In that manner, no other changes would have to be made to thepayment infrastructure that is in existence. This process would involveonly a minor modification of the process so as to include the smartcontract in order to prevent fraud.

The delivery service 2312 could also include such data as a weight ofthe item deposited. Much like a grocery store self service checkout thatenables you to buy a can of soup by scanning it and then placing it onthe scale to compare the weight of what you placed on the scale with anexpected weight of a can of soup. So if you buy a pair of shows on-lineand you are using a smart contract, and the merchant packages up theshoes and gives the package to UPS, UPS can weigh that package andcompare its weight to the expected weight of the shoes which can confirmthat the proper product was deposited for delivery to the user.

Where users donate to charity, smart contracts could be requested by theuser to confirm the recipient is a valid charity organization. Smartcontracts can prevent much fraud in disaster funding like hurricane orflood recovery efforts. Often sites crop up to fraudulently obtain easymoney. With this approach, the giver can request a smart contract forcharitable donations which can include as an element a confirmation ofthe validity of the recipient organization.

Some of the services that were outlined above with respect to fraudprevention and risk management, such as a fraud scoring model, negativelist data, payer authentication, and so forth, could be provided to thesmart contract via source 2310. For example, part of the processing ofthe smart contract could be to receive buyer information and tocommunicate that data to a fraud prevention service. The fraudprevention service could return a score or a probability that the buyeris a potentially fraudulent buyer. That score could cause a number ofchanges to occur in the transaction. For example, if the score reveals arelative likelihood that the buyer could be a problem, a fraudprevention charge could be added to the transaction. Indeed, accessingthis data could also occur outside of the context of the smart contractand in the initial process of communicating data between the site andthe browser to establish the payment price shipping charges, and soforth. In other words, the payment request API could be utilized toreach out to a fraud prevention data service. Inasmuch as informationabout the buyer is available as part of the data communicated within theAPI.

It is noted that within the basic infrastructure shown in FIG. 1, thatmany other variations could occur. All interactions between the variouscomponents are considered as within the scope of this disclosure. Forexample, one aspect of this disclosure could be to establish the smartcontract as part of the transaction that occurs between the paymentrequest API, and storing the payment token within the smart contract.The interaction between the site and the user via the API interfacecould include options to be built into the smart contract. For example,the buyer may release the funds to the seller upon deposit of thepurchased item with the mail delivery service. Any selectable variationon how the smart contract should be functioning can be selected as partof the payment request API simplified interface. Thus, a user couldselect their visa, their home address, expedited shipping, and smartcontract parameters and then confirm the purchase.

Inasmuch as chargebacks or a fraudulent problem from the standpoint ofthe merchants, the smart contract could also build in protections toprevent such chargebacks. For example, the reverse process could occurwhere if the smart contract is utilized to implement the initialtransaction, the same smart contract, or new smart contract, should beused to handle legitimate chargebacks. Thus, rather than the sites 2302paying back the user, the money, or a token, or data packet could bestored at a smart contract 2308 and held for release until certainconfirmations are provided that it is an appropriate chargebacks. Forexample, if the user asserts that they did not receive the product, andthus want to be reimbursed, the smart contract could store and haveaccess to the delivery service 2312 data which can confirm the positionof the buyer. It is been estimated that 86% of chargebacks aredishonest. Customers often will receive a chargeback and simply keep theproduct that has been delivered to them. By handling chargebacks via asmart contract 2318, the money can be stored and held until confirmationis provided to the smart contract that the chargeback is appropriate. Itmay be as simple as the user 2314 interacting with the smart contract byconfirming in some manner that the product was never received, or thatthe product was defective. The user may only need to use a fingerprintreader to confirm their identity. That information could include suchdata as photos, video of the user opening up the packages it wasreceived, video of other people who also witnessed the situation, and soforth. Smart contract 2318 can represent any second smart contract thatcommunicates with the first smart contract for any reason. It could beto handle a chargeback, or to coordinate between multiple transactionsmart contracts for a user, or a defined group of users, and so forth.

Requirements such as these will inevitably reduced to some degree theamount of fraud. Thus, by providing a smart contract which requiresfurther evidence such as video, images, testimony or data from anotherdata service 2310, such as a local merchants who confirms the state ofthe product via interaction with the smart contract, a more efficientchargeback fraud prevention system can be in place.

The data 2310 shown in FIG. 23 can represent any kind of data associatedwith fraud prevention. Such data can include negative list, informationfrom financial institutions in which a financial and from institutioncan cooperate or provide information to identify a fraud attempt reduceloss and costs associated with chargebacks. IP geolocation services canbe also provided which can enable proxy piercing information via Ipre-address, which can provide noninvasive insight into the risksinvolved with accepting transactions from a specific IP address,negative lists, digital fingerprinting, AVS authentication, which allowsmerchants to verify the cardholder's billing address with the data onfile with an issuing bank, and CVV verification which is the three digitcode that is used as part of the CNP process.

As can be appreciated, any fraud prevention or reduction methodology canbe incorporated into this process and utilized by a smart contract tomore efficiently and easily complete successfully a purchasingtransaction utilizing the new payment request API in the payment handlerAPI.

Note that in FIG. 23, the communication to the smart contract comes froma number of different sources. Again, for example, the actual paymentdata that stored in the smart contract to come directly from thebrowser, or it could come from the site. In other words, via the paymentrequest API, the site will receive a response from a payment request,and the response will include in one aspect, the necessary payment datato process a payment for the product. Rather than actually processingthe payment, the merchant could forward that data packet or data packageto the smart contract rather than processing the payment. The merchantcould them ship the product and provide the information to the smartcontract that the product has been shipped and identify the deliveryservice 2312 that will be tracked. Then, once the product is partwaydelivered or completely delivered, as notified to the smart contract108, then that data package with the necessary payment information to bedelivered back to the site 2302. Again, one of the benefits of thisapproach is that there is no need to re-program or reinvent the basicunderlying payment processing that occurs by the site 2302. Given thesimplicity of the use of the payment process with the payment requestAPI, the additional programming that might be necessary in order tomanage the transaction via a smart contract would be minimal.

As noted above, fraud prevention using a smart contract can benefit boththe merchant as well as the customer. Accordingly, in general, there isincentive on both sides to perform the transaction via a smart contract.Whether the implementation of the smart contract is required by one ormore of the parties or whether it is voluntary, all of the mechanisms(processes, protocols, requests, responses, modifying of data orprotocols, etc.) that are possible for providing the underlying dataassociated with the purchasing transaction through the use of thepayment request API and/or the payment handler API are contemplated aswithin the scope of this disclosure. Indeed, the steps performed toinitiate the use of the smart contract also be distributed amongst thesite, the browser, a web payment app, a payment processor, and so forth.To initiate the use of a smart contract, which then tracks the progressand performance associated with the transaction, the system can utilizeany one or more components disclosed in FIG. 1. Other data sources orcomponents can also be included which are not disclosed and might benecessary for a particular transaction. Thus, recording real estatedeeds, medical information, software purchases, and so forth involveinformation and records that can be managed or recorded or tracked via asmart contract. The novelty of the concepts disclosed herein is how toinitiate and implement a smart contract based transaction in which thepayment request API and/or payment handler API are utilized as interfacewith the user. All of the terms and data associated with a smartcontract can be of course recorded on the Blockchain.

All of the basic components of smart contracts such as the use of thepublic key and a private key and so forth are considered within thescope of this disclosure. Ethereum was designed as a smart contractplatform. In one aspect, the Ethereum Virtual Machine (EVM) would beconsidered as an example platform were smart contracts can be run inEther. It is a Turing Complete programming language. As a distributedglobal computer, it can be the location where the smart contracts areexecuted. A company called Blockcat also provides an interface wheresmart contracts can be easily implemented. Users can simply choose someof the basic components of the smart contract and implement a smartcontract for a transaction without needing to know how to actually codethe contract. The user can also request a smart contract as part of theAPI payment interface. It is these kinds of concepts and technologiesthat can be modified for use in the present disclosure. Rather than theuser choosing particular terms for smart contract, the data that isavailable via the payment request API interface can be easily accessedto essentially pre-populate necessary input in order to establish theterms of a smart contract for particular interaction. The key with thisapproach is that it places the creation of the smart contract in themiddle of the future of on-line purchasing transactions and an efficientand effective manner.

All of the principles herein can also apply to any payment interface aswell, even traditional check out processes or Amazon's one-clickpurchasing process. Any checkout procedure can include additionaloptions to process the transaction via a smart contract.

Assume that the smart contract disclosed herein is run by the EVM. Theremust be a mechanism to limit the resources used by in each contract.Every single operation that is executed inside the EVM is simultaneouslyexecuted by every node in the network. A transaction contract code cantrigger data reads and writes into expensive computations like usingcryptographic primitives and make calls or send messages to othercontracts as well. Thus, in one aspect of this disclosure, the smartcontract 2308 that is created as part of the payment request APItransaction, could actually communicate with send messages receivemessages, make changes, and so forth, to other smart contracts. Forexample, a buyer may have multiple transactions that are occurringsimultaneously and that they just purchased five products from fivedifferent websites. One aspect of this disclosure could be to coordinateand communicate data between an individual's smart contracts that allare currently pending for purchases that they have made. This canincrease the efficiencies of the system. A user may also have their ownstandard smart contract that learns through machine learning their ownpatters and practices in purchasing.

Each of the operations associate with the smart contracts have a costmeasured in the term “gas”. Based on the gas/ether price, which changesdynamically, each guest unit consumed by a transaction must be paid forin ether. This price can be deducted from the Ethereum account sendingthe transaction when using the EVM platform. Then, one aspect of thisdisclosure to be to convert from dollars to Ether in order to carry outthe process on the smart contract. It is anticipated that this processwould be transparent to the user. The transaction can also have a guestlimits parameter is an upper bound on how much gas the transaction canconsume and can be used as a safeguard against programming errors thatcould deplete the account. In this scenario, inasmuch as the smartcontracts are initiated in order to prevent fraud, it would beanticipated that the cost of using a smart contract in order to pay forthe computations necessary to perform the contract, would outweigh thecost of fraud. Paying for other project prevention services can beeliminated, fraud can be reduced, and in the end, merchants both largeand small can make and increase revenue.

In some scenarios, the smart contract might need to communicate withindividuals or receive data. The smart contract could be loaded withcommunication information such as cell phone numbers, email addresses,and so forth. If a user buys a piece of real estate using the paymentrequest API, there may need to be some documents scanned and provided tothe smart contract which could handle recordation requirements. Thus,the communication between the smart contract 2308 and a user 2314 canrepresent the smart contract initiating an email or text or othercommunication to user requesting certain information. An interface couldbe provided which enables the user to confirm data, attach data, providea picture or photo, provide commentary via text or audio, or any otherfunction that might be necessary in order to further the process of thetransaction.

One example of how smart contract might operate could be in a sale of apatent. Assume the patent is issued, which has a general applicabilityand is considered essential for a transaction that is widely used acrossmultiple websites or browsers or vehicles, and so forth. Rather thanlitigation, the owner of the patent could utilize a smart contract tostrive to settle with the affected parties and license the patent in theend or essentially donate the patent to the public upon receiving asatisfactory settlement.

The process could proceed as follows. A smart contract could be set upwhich basically receives crowd funding from interested parties in thepatent via crypto currency such as bitcoin, and Ethereum, and so forth.Assume Amazon's one-click purchasing patent was being offered by JeffBezos for sale to the world for anyone that wanted to use it. Thecontract could be set up such that upon receiving, say, $100 M in value,the smart contract could automatically implement a process of abandoningthe patent. This would have the effect of making them available foranyone to use. The smart contract could store, for example, a power ofattorney and signed documents which are verified by third parties to beeffective in expressly abandoning the patent. Other documents, such ascovenants not to sue, and so forth that might be necessary to handleprior infringement could also be provided and store the smart contract.Upon hitting the threshold amount of money, the smart contract couldemail these documents to a reputable law firm who would then file thepower of attorney and the express abandonment documents. The smartcontract could have registered with it three other reputable firms that,upon the publication of the notice of abandonment, would review thematerial and confirm in their professional judgment that the casessuccessfully been abandoned. Each of these law firms could then interactwith the smart contract to confirm in their judgment that they have seenthe notice of abandonment. A small fee could be provided for theservice.

Such documentation could also be provided to the smart contract. Data2310 could represent services provided to the smart contract such asoptical character recognition services for such documents. For example,services could be provided which could review such documents, performcharacter recognition, analyze the contents, and also electronicallyconfirm that the proper patent, and that the proper language is in thedocument, which indicates that the patent is abandoned.

Upon such proper confirmation, the smart contract could then transferthe crypto currency or any other currency or combination thereof, fromthe smart contract to the patent holder for payment. As noted above,this payment could be a token that is a one-time use token, credit cardinformation, account information, crypto currency, digital assets, orany other form of payment.

The smart contract could also provide data such as videos, explanationsof the patents, and so forth which can enable a potential contributor tothe smart contract to understand the material. Thus, in the abovescenario, if an essential patent were to be placed in such a smartcontract, the businesses affected by the patent could review thematerial, evaluate the potential issue to their businesses, anddetermine to each contribute in a crowd funding sense to open sourcingthat patent. Businesses could be safe in knowing that if theycontribute, the only way that the actual payment would be received bythe patent holder would be that if the threshold was met on the paymentamount plus the actual confirmation of the abandonment of the patents.If the threshold amount was not met, or if the patents were notsuccessfully abandoned, then other remedies could be provided such asreturning the money to the contributors or seeking to take otherapproaches to accomplishing the abandonment process.

Of course, rather than abandoning the patent, the smart contract couldenable a licensing process in which, once the threshold is met,individuals that have paid into the smart contract could receive theirlicense. In another scenario, no threshold could be established, andanyone who simply paid into the smart contract and receive an individuallicense.

In some aspects, the smart contract described above can be completelyindependent of the payment request API as well. Similar smart contractcould be established for any kind of transaction.

In one scenario, a family of smart contracts could be developed for allkinds of standardized transactions. As users may desire to use suchsmart contracts, they could simply describe their transaction andreceive a default basic smart contract that the name can configure forthe particular circumstances and then use. Where a transaction isoccurring via the payment request API or other APIs, the API protocolsto include a code or a description of the kind of transaction that isbeing accomplished, and the kind of infrastructure that is necessary tomanage that transaction through a smart contract.

Underlying the payment request API could be a host or a group of smartcontracts that from which the appropriate smart contract could beselected based on the data communicated in the API. For example, if theintersect between available payment options at the merchant and thepayment options available for the user only includes bitcoin, then thebitcoin product sale and delivery smart contract could be selected andutilized for that transaction. If necessary, other data can becommunicated between the smart contract and the site. For example, forthe transaction to be initiated upon a smart contract, just as in thesituation where the payment request API confirms payment capabilitiesthat correspond to both parties, the necessary capabilities to be ableto track product through the delivery process, the ability of themerchant to take certain steps that might be necessary for thetransaction, and so forth, could be preliminarily determined before thetransaction gets implemented via the smart contract. Thus, assuming thatthe merchant utilizes a delivery system such as FedEx or UPS thatprovides the necessary tracking and delivery service data 2312, andassuming that the user can pay in bitcoin, then that transaction can beimplemented on the Blockchain smart contract so as to be implemented ina way that does not require trust on either side of the transaction.

The various necessary requirements of receiving data, transmitting data,confirming data, processing data, analyzing data, evaluating data,communicating data, handling a payment, transmitting a payment token orpacket associated with payment information, all can be performed by oneor more of the entities disclosed in FIG. 1. The concepts describedherein can be claimed from the standpoint of any of the components. Forexample, the site 2302 can perform the steps of transmitting a paymentrequest to the browser 2304 and receiving a response according to thepayment request API protocol. The site can transmit data to the smartcontract 108 which can include an identification of the product, aconfirmation that they have the product and have deposited the productinto a delivery service. The smart contract can be claimed as anembodiment of this disclosure in terms of receiving one or more piecesof data as described herein, and then initiating its programming tomanage the transaction, and make the payment at the appropriate timewhen the conditions of the smart contract are met.

Similarly, the concepts disclosed herein can also be claimed from thestandpoint of the browser 2304 or device 2307 that communicates data tothe site 2302 and the smart contract 2308. Processing could also beclaimed from the standpoint of a web based payment service 2306 whichmay provide a tokenized one-time use payment packet which could beprovided to the smart contract 2308 in accordance with the principlesdisclosed herein. Such a web payment service 2306 could receive itsinitiation into the transaction, via communication from a paymenthandler API or a platform specific API. Those APIs could be updated intheir protocols to provide the necessary information, such as that thetransactions is going to occur via an identified smart contract, andthat the web payment service, rather than providing a token or otherdata through the payment handler API to the browser 2304, which willcommunicate that token or data through the payment request API to thesite 2302 for processing (such as delivery to a payment processor 2316,or processing on its own).

In another aspect, the data received by the payment service 2306 couldindicate such information as the merchant, the amount, and any otherdata necessary, and instruct the payment service 2306 to deliver thepayment data to the smart contract 2308. As can be appreciated, themodification of this approach involves utilizing the already developedprotocols for payments using these APIs, and simply redirects themtemporarily to the smart contract for managing the transaction. The sameprocess can occur for any chargebacks or any refunds as noted above. Ifthe user contacts the merchant and request a chargeback or a refund, thesame smart contract can be programmed to handle such refunds and confirminformation in order to reduce or limit fraud. The smart contract couldalso communicate with a chargeback smart contract to provide all theunderlying data about the transaction. Thus, the merchant could providea data packet generated in a similar way in which the payment is to bedelivered back to the recipient upon confirmation that the recipient didnot receive the package, or that the package was the damaged, or thatthe product was defective, and so forth. Every hurdle that is placed toprevent fraud can reduce the number fraud experiences. Thus, byrequiring the user to take the product to a local store which canconfirm the status of the product, and receive a small payment for theirservice, information from the local store can be provided to the smartcontract to confirm that the product that appear to be damaged as wasasserted. Any other confirmations could be built into the smart contractsuch as requiring the user to provide pictures of the item, videotestimony, or any other evidence that the chargeback or the return isjustified. Any electronic tracking devices on the product could also bescanned or communicate via Wi-Fi or any other wireless protocol astatus, which can also be connected to the smart contract.

Using these general principles as well as any other specific conceptsthat can easily be derived therefrom, the present concepts enable theimplementation of a smart contract for regular purchasing transactionsin a way that can eliminate or greatly reduce fraud across the Internet.As the payment request API gets rolled out, and as small individualwebsite owners start selling more products and are exposed to the riskinvolved in not being an Amazon.com, the easy implementation of smartcontracts for the purpose of individual transactions can greatly reducethe amount of fraud in the overall economy.

In another aspect, the smart contract 2308, an act as any smart contractcan also receive data 2310 from public sources such as public APIs whichmight be necessary for carrying out for the particular transaction.

Another potential avenue for balancing out the needs of inventors toreceive compensation and the industry being able to be free to innovatewould be the use of the initial coin offering or ICO. Initial coinoffering is an offering where an entity offers investors units of a newcrypto currency or crypto token in exchange against crypto currencieslike bitcoin or Ethereum. An application of the Ethereum's smartcontract system could be to create a simple token which can betransacted on the blockchain if they are in Blockchain instead of ether.This can be used as a distribute platform for crowdfunding andfundraising. ICO' s have been used for providing a decentralizedplatform for Cloud computing (Dfinity), streaming video (Singular DTV)in many other uses.

A patent transaction was discussed above. Establishing an ICO in whichindividuals could purchase tokens from an entity and the entity couldrun a smart contract which would bring stakeholders together to managethe sale of patents. For example, if an inventor conceives of anessential Blockchain invention and obtains a patent that everybody wouldneed to use for efficient or effective Blockchain technologies, a“PatCoin” token be could be created and sold, which would fund theoperation of a smart contract to manage the process. A mining operationfor PatCoins could be processed by the smart contract such that once theinventor submits their patents to the smart contract, qualifiedevaluators could mine coins by providing their objective evaluation ofthe patent and whether it is essential to Blockchain technology. Aconsensus could be obtained from the various participants who could eachreceive certain mined coins for their efforts. Other experts in patentvaluation could also review the patent in the marketplace and providetheir input on its value. With this information, potential buyers thatare affected by the patent could pledge a certain amount of money inorder to compensate the inventor.

For example, if, based on the evaluations and an amount indicated by theinventor, evaluation of $5 M is arrived at, the smart contract couldenable an estimated cost for each potential infringer. The smartcontract could be set up where once five million dollars of value isreceived within the smart contract, certain functions are performed. Thefunction may be to render the patent unenforceable, such as byaffirmatively abandoning the application, or through some other legalprocess in which the patent would become open source and available tothe community. In another aspect, the smart contract could providelicenses of the patent to those that paid into the system. The smartcontract could be set up to where these operations automatically occuronce the threshold amount is met to purchase the patent or to licensethe patent.

Imagine another scenario where a patent holder places a patent orportfolio into the smart contract with certain parameters for its sale.The patent holder may include data outlining the case for infringementor for the essential patent to the Blockchain or to any othertechnology. A patent owner could mine PatCoins merely by submitting apatent into the system. Evaluators could review the material and providetheir input on the strength of the case. Once the original evaluation iscomplete and a cost established in the smart contract, participants inthe industry to be notified of the case and have opportunities to helpfund the purchase of the patent. If the patent owner in this example isasking for $10 M, various potential infringers could each evaluate thepatent and contribute some money by way of crowd funding the sale. Asmoney is provided to the smart contract, and can be held in escrow or inthe manner in which it is not available for the patent owner toretrieve. If the threshold is met of $10 M, then the smart contractreleases the money to the patent owner and performs the necessaryfunctionality associated with the patent to make it either open source,license to those that contributed, abandoned, and so forth. FurtherPatCoins could be mined for those participants who completed asuccessful transaction. Part of the proceeds could be used asdistributions for the PatCoin holders. Thus, all the participants whosubmitted money into the smart contract to purchase a particular patent,could receive PatCoins if the threshold is met in the transactionoccurs. The patent owner could also be given the option of accepting alesser amount. For example, if, after six months, only $8 M was providedinto the fund, the patent owner may accept that amount and enter thatdata into the smart contract and receive that money while having theprocessing occur for the patent.

The above approach can bring together the various parties in patentdisputes and enable a process by which they can work together to providea fair compensation for inventors while at the same time preventingexcessive patents awards. Having stakeholders include experts onvaluation can aid in targeting appropriate settlement ranges. Evaluatorscan be ranked and receive a status that enables them to mine a higheramount of PatCoin for their efforts, the more they are trusted. Acertain amount of the sale could be kept by the entity for itsinvestors.

In some cases, like the Blockchain, patents could be granted onessentially open source technology. There may be a number ofparticipants in the standards body who would not want patents to affectthe expansion of an adoption of the standard. In one scenario, andinventor of an essential patent or one is related to standards bodycould submit that patent to the smart contract referenced above with thedollar amount with a commitment that if the dollar amount is reached,then the patent automatically is made open source, abandoned or madeunenforceable. Participants in standards bodies, usually largercompanies, could each pitch in a portion of the requested amount inorder to strive to make a deal.

One potential mechanism for accomplishing the affirmative abandonment ofthe patent, thus making it essentially “open-source” would be thefollowing. The patent owner could submit into the smart contract signeddocuments such as a power of attorney and signed form which indicates anaffirmative abandonment of the patent. Subject matter experts such asreputable attorneys at patent law firms could provide a confirmingconsensus that the documents would properly provide a power of attorneyand an abandonment of the patent if they were filed the patent office.With these documents stored within the smart contract, the smartcontract with then receive payment from those who desire that patent tobe made open source. Envision Amazon's one-click purchasing patent andthe interest in society for that patent to be made open source. Thatpatent has been valued at $2.4 B and many companies would likely desireto pay a fair small price in order for that patent to be made availableto the public seventeen years ago, rather than only Sep. 12, 2017.

The smart contract would be programmed, once the desired amount isreceived, to release the documents to an authorized law firm. Thedocuments could be simply transmitted via email to the listed party. ThePTO website could also be reprogrammed to receive filing documentsdirectly from a smart contract. The necessary digital signatures, logindata, powers of attorney and so forth could be provided such that thefunctionality was automated.

The law firm could then file a power of attorney with the patent officeand file, the express abandonment document. In a short period of time,the patent office would confirm abandonment of the application with anotice of abandonment. This document could be submitted to the smartcontract with a confirmation from the law firm that the patent is indeedabandoned. Other reputable attorneys could also be engaged such that aconsensus is input to the contract that the patent is in fact abandoned.Any one or more of these steps could be automated between the smartcontract and the patent office.

With all these confirmations in place, the money would be released tothe inventor. Again, the money could be provided in the form of any oneor more crypto currencies, held as a one-time use payment token, in anescrow account, or in any other fashion. The above approach couldprovide a more communal way of resolving high-value patent disputeswithout expensive litigation. This approach requires both parties toparticipate, however. A patent owner that requests $2 B in value is notlikely to receive such a large sum. However, it would be relatively easyto consider, particularly given the hindsight view, that if Jeff benzoshad requested $200 M to make Amazon's one-click purchasing patent opensource in 2000 using the smart contract approach described herein, themany large companies such as Apple (The only licensee of Amazon'sone-click patent), as well as many smaller companies would happilycontribute enough money to arrive at $200 M and thus benefit fromincreased conversions and sales on their respective websites.

Cryptocurrency Via the Browser API

Another aspect of this disclosure relates to a method includingreceiving, from a site, at a browser and via a browser payment requestapplication programming interface that defines a protocol forcommunicating data between the site and the browser, a requestassociated with a potential purchase, wherein the request comprises anidentification of a cryptocurrency payment method accepted by the siteand transmitting, to the site, from the browser and via the browserpayment request application programming interface, data indicating thata user of the browser can pay for the potential purchase via thecryptocurrency payment method accepted by the site. This is a“canmakepayment” exchange in which the site and the browser determinethe overlap between payment methods. In this example, a cryptocurrencyis common to both the site and the browser/user. The method includesreceiving, via a user interface associated with the browser paymentrequest application programming interface, a confirmation from the userto process the potential purchase using the cryptocurrency paymentmethod and retrieving, based on the confirmation from the user and viathe browser payment request application programming interface,cryptocurrency payment information for the potential purchase. Theretrieving can involve gathering the input to the transaction which caninclude the buyer's private key, data about the address of the personwho transferred the cryptocurrency to the buyer, the seller's publickey, a password and/or any other data for processing the cryptocurrencytransaction. The cryptocurrency wallet can be local to the device orweb-based. Such wallets in one aspect are registered with the browser,like any other payment method, such that they are usable and thenecessary data for the transaction can be provided to the browser as theagent managing the transaction. The method includes, in one aspect,transmitting from the browser and via the browser payment requestapplication programming interface, the cryptocurrency paymentinformation.

The request can further be associated with a user-initiated actionindicating an intent by a user to make a purchase. Transmitting thecryptocurrency payment information to the site can enable the site toprocess a purchase or confirms to the site that a payment serviceprocessed the purchase. In this scenario, a web-based cryptocurrencywallet for the user may have provided the input data for the transactionon the blockchain outside of the payment request API.

The request can identify a supported payment method used by the site,such as Visa and Apple Pay, for example, in addition to thecryptocurrency payment method. The cryptocurrency payment informationcan include a private key that identifies a user cryptocurrency wallet.The wallet can be of any type and be local or web-based. The usercryptocurrency wallet in other words can be stored on one of the deviceor a web-based device separate from the device.

Transmitting the cryptocurrency payment information further can includetransmitting a message signed with a private key to a cryptocurrencynetwork for verification. The message further can include an amount ofcryptocurrency and a site address for receiving the amount ofcryptocurrency. The amount can be obtained through data transmittedthrough the browser payment request API. A conversion might need to takeplace by the site or a third party service to convert from dollars tobitcoin, or other cryptocurrency.

The message further can include a record of a cryptocurrency addressused to send cryptocurrency to the user cryptocurrency wallet. Thecryptocurrency payment information can be stored at the browser,accessed by the browser from a separate entity, or delivered to the sitefrom a third party as instructed by the browser.

In another aspect, the method can include the processing from the sitestandpoint and include transmitting, from a site, to a browser and via abrowser payment request application programming interface that defines aprotocol for communicating data between the site and the browser, arequest associated with a potential purchase, wherein the requestcomprises an identification of a cryptocurrency payment method acceptedby the site and receiving, at the site, from the browser and via thebrowser payment request application programming interface, dataindicating that a user of the browser can pay for the potential purchasevia the cryptocurrency payment method accepted by the site. The methodcan further include receiving, based on a confirmation from the user toprocess the potential purchase using the cryptocurrency payment methodand via the browser payment request application programming interface,cryptocurrency payment information for the potential purchase. Receivingthe cryptocurrency payment information further can include receiving acryptocurrency payment at a site cryptocurrency wallet from a usercryptocurrency wallet. The cryptocurrency payment information caninclude a private key that identifies a user cryptocurrency wallet. Theuser cryptocurrency wallet can also be stored on one of the device or aweb-based device separate from the device.

FIG. 24 illustrates a method embodiment related to use of a smartcontract. The method includes receiving transaction data via use of apayment request application programming interface that defines aprotocol for communicating data between a site and a browser forhandling a purchasing transaction (2402), based on the transaction data,transmitting smart contract data to a blockchain-based smart contractfor managing the purchasing transaction (2404), managing the purchasingtransaction via the blockchain—based smart contract (2406), based on atrigger event while managing the purchasing transaction, releasing apayment from a buyer from the blockchain-based smart contract to theseller (2408).

Built into the smart contract can be any kind of functionality necessaryfor a particular transaction. Titles to objects, delivery tracking,further user input, third-party input to verify an event, publiclyavailable data via an Oracle, documents, crypto currency data, datapackets that embody payment information for a one time transaction, andso forth, can be stored and managed by the smart contract 2308. Forexample, the smart contract could store a tokenized packet of data aspart of an Apple pay or an android pay process. It could be the sametype of data which would be simply delivered to a site for submission totheir payment processor 2316 as part of a normal payment request APItransaction. However, as part of the smart contract concept, the processcan include routing that tokenized packet for storage in the smartcontract until confirmation of the deposit of the product with thedelivery services received.

Examples within the scope of the present disclosure may also includetangible and/or non-transitory computer-readable storage devices forcarrying or having computer-executable instructions or data structuresstored thereon. Such tangible computer-readable storage devices can beany available device that can be accessed by a general purpose orspecial purpose computer, including the functional design of any specialpurpose processor as described above. By way of example, and notlimitation, such tangible computer-readable devices can include RAM,ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storageor other magnetic storage devices, or any other device which can be usedto carry or store desired program code in the form ofcomputer-executable instructions, data structures, or processor chipdesign. When information or instructions are provided via a network oranother communications connection (either hardwired, wireless, orcombination thereof) to a computer, the computer properly views theconnection as a computer-readable medium. Thus, any such connection isproperly termed a computer-readable medium. Combinations of the aboveshould also be included within the scope of the computer-readablestorage devices.

Computer-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Computer-executable instructions also includeprogram modules that are executed by computers in stand-alone or networkenvironments. Generally, program modules include routines, programs,components, data structures, objects, and the functions inherent in thedesign of special-purpose processors, etc. that perform particular tasksor implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represents examples ofcorresponding acts for implementing the functions described in suchsteps.

Other examples of the disclosure may be practiced in network computingenvironments with many types of computer system configurations,including personal computers, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, and the like. Examplesmay also be practiced in distributed computing environments where tasksare performed by local and remote processing devices that are linked(either by hardwired links, wireless links, or by a combination thereof)through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

The various examples described above are provided by way of illustrationonly and should not be construed to limit the scope of the disclosure.Various modifications and changes may be made to the principlesdescribed herein without following the example examples and applicationsillustrated and described herein, and without departing from the spiritand scope of the disclosure. Claim language reciting “at least one of” aset indicates that one member of the set or multiple members of the setsatisfy the claim. Notably, any feature described in any example orembodiment can be combined with any other feature of any example ofembodiment. For example, any concept disclosed herein or in a parentapplication can be combined with a browser API functionality or API userinterface. In another example, any feature discussed with respect to asearch engine example can be applicable and interchangeable with asocial media example, or a product purchase management engine example.

We claim:
 1. A method of authorizing payment data via a browser, themethod comprising: receiving, from a site, at the browser and via a fullclient browser application programming interface that defines a protocolfor communicating data between the site and the browser, a requestassociated with a potential purchase, wherein the request comprises anidentification of a cryptocurrency payment method accepted by the site;transmitting, to the site, from the browser and via the full clientbrowser application programming interface, data indicating that a userof the browser can pay for the potential purchase via the cryptocurrencypayment method accepted by the site; and receiving, via the full clientbrowser application programming interface, authorized payment data forthe potential purchase to be made using the cryptocurrency paymentmethod.
 2. The method of authorizing payment data via the browser ofclaim 1, further comprising: populating a cryptocurrency wallet with theauthorized payment data to enable the cryptocurrency wallet to make apayment; and initiating, via the full client browser applicationprogramming interface, the cryptocurrency wallet.
 3. The method ofauthorizing payment data via the browser of claim 2, wherein theauthorized payment data is cryptocurrency payment information thatcomprises at least one of a site address for receiving the payment, aprivate key of a buyer, a public key of a recipient, an email address,recipient identification information, a payment amount, and a usercomment.
 4. The method of authorizing payment data via the browser ofclaim 2, wherein the cryptocurrency wallet comprises at least one of awallet stored locally on a device that is running the browser and aweb-based wallet.
 5. The method of authorizing payment data via thebrowser of claim 4, wherein when the cryptocurrency wallet is theweb-based wallet, the method further comprises: transmitting theauthorized payment data to the web-based wallet via an applicationprogramming interface for processing the payment.
 6. The method ofauthorizing payment data via the browser of claim 1, wherein the requestidentifies a supported payment method used by the site in addition tothe cryptocurrency payment method.
 7. The method of authorizing paymentdata via the browser of claim 2, wherein the authorized payment datacomprises a private key that is used to sign a transaction with thecryptocurrency wallet.
 8. The method of authorizing payment data via thebrowser of claim 1, further comprising: transmitting, via the fullclient browser application programming interface, data to the site foruse by a site cryptocurrency wallet to receive a payment.
 9. The methodof authorizing payment data via the browser of claim 1, wherein theauthorized payment data is stored at the browser, accessed by thebrowser from a separate entity, received from the site via the fullclient browser application programming interface, received from a thirdparty, or delivered to the site from the third party as instructed bythe browser.
 10. The method of authorizing payment data via the browserof claim 1, wherein when the cryptocurrency payment method is selectedby the user for a purchase, the method further comprising: generating ablended user interface via the full client browser applicationprogramming interface which blends a payment interaction interface and acryptocurrency wallet interface for use by the user to confirm apayment.
 11. A method comprising: transmitting, from a site, to abrowser and via a full client browser application programming interfacethat defines a protocol for communicating data between the site and thebrowser, a request associated with a potential purchase, wherein therequest comprises an identification of a cryptocurrency payment methodaccepted by the site; receiving, at the site, from the browser and viathe full client browser application programming interface, dataindicating that a user of the browser can pay for the potential purchasevia the cryptocurrency payment method accepted by the site; andreceiving, based on a confirmation from the user to process thepotential purchase using the cryptocurrency payment method via the fullclient browser application programming interface, a payment using thecryptocurrency payment method.
 12. The method of claim 11, furthercomprising: receiving the payment at a site cryptocurrency wallet from acryptocurrency wallet, wherein authorized payment data is used inpopulating the cryptocurrency wallet for initiating the payment.
 13. Themethod of claim 12, wherein the authorized payment data comprises atleast one of data that identifies the site cryptocurrency wallet and anamount.
 14. The method of claim 13, wherein the cryptocurrency wallet isstored on one of a device operating the browser and a web-based deviceseparate from the device.
 15. A system comprising: a processor; and acomputer readable storage medium storing instructions which, whenexecuted by the processor, cause the processor to perform operationscomprising: receiving, from a site, at a browser and via a full clientbrowser application programming interface that defines a protocol forcommunicating data between the site and the browser, a requestassociated with a potential purchase, wherein the request comprises anidentification of a cryptocurrency payment method accepted by the site;transmitting, to the site, from the browser and via the full clientbrowser application programming interface, data indicating that a userof the browser can pay for the potential purchase via the cryptocurrencypayment method accepted by the site; and receiving, via the full clientbrowser application programming interface, authorized payment data forthe potential purchase.
 16. The system of claim 15, wherein theauthorized payment data comprises at least one of a site address forreceiving a payment, a private key of a buyer, a public key of arecipient, an email address, recipient identification information, apayment amount, and a user comment.
 17. The system of claim 15, whereina cryptocurrency wallet associated with the authorized payment datacomprises at least one of a wallet stored locally on a device that isrunning the browser and a web-based wallet.
 18. The system of claim 15,wherein when the cryptocurrency payment method is selected by the userfor a purchase, and wherein the computer readable storage medium storesadditional instructions which, when executed by the processor, cause theprocessor to perform operations further comprising: generating a blendeduser interface via the full client browser application programminginterface which blends a payment interaction interface and acryptocurrency wallet interface for use by the user to confirm apayment.
 19. The system of claim 15, wherein the computer readablestorage medium stores additional instructions which, when executed bythe processor, cause the processor to perform operations furthercomprising: transmitting the authorized payment data to a cryptocurrencywallet via an application programming interface for processing thepayment.
 20. The system of claim 19, wherein the computer readablestorage medium stores additional instructions which, when executed bythe processor, cause the processor to perform operations furthercomprising: transmitting, via the full client browser applicationprogramming interface, data to the site for use by a site cryptocurrencywallet to receive a payment.
 21. A method of processing a payment, themethod comprising: receiving, at a cryptocurrency wallet, authorizedpayment information associated with a purchase, wherein the authorizedpayment information is generated based on a browser receiving, from asite, at the browser and via a full client browser applicationprogramming interface that defines a protocol for communicating databetween the site and the browser, a request associated with a potentialpurchase, wherein the request comprises an identification of acryptocurrency payment method accepted by the site; processing thepayment using a cryptocurrency from the cryptocurrency wallet and basedon the authorized payment information; and transmitting, to the browser,confirmation data associated with the processing of the payment usingthe cryptocurrency.
 22. A system for processing a payment, the systemcomprising: a processor; and a computer readable storage medium storinginstructions which, when executed by the processor, cause the processorto perform operations comprising: receiving, at a cryptocurrency wallet,authorized payment information associated with a purchase, wherein theauthorized payment information is generated based on a browserreceiving, from a site, at the browser and via a full client browserapplication programming interface that defines a protocol forcommunicating data between the site and the browser, a requestassociated with a potential purchase, wherein the request comprises anidentification of a cryptocurrency payment method accepted by the site;processing the payment using a cryptocurrency from the cryptocurrencywallet and based on the authorized payment information; andtransmitting, to the browser, confirmation data associated with theprocessing of the purchase using the cryptocurrency.
 23. A method ofreceiving a payment, the method comprising: transmitting, from a site,to a browser and via a full client browser application programminginterface that defines a protocol for communicating data between thesite and the browser, a request associated with a potential purchase,wherein the request comprises an identification of a payment methodaccepted by the site, wherein the payment method uses a cryptocurrency;and receiving, at the site, the payment according to the payment method,wherein the payment method uses the cryptocurrency according to acryptocurrency payment process initiated based on the requesttransmitted via the full client browser application programminginterface.
 24. The method of claim 23, wherein the cryptocurrencypayment process comprises converting a first currency into a secondcurrency.
 25. The method of claim 23, wherein the cryptocurrency paymentprocess enables a buyer to purchase an item from a seller using a firstcurrency and the seller to be paid in a second currency, and wherein thecryptocurrency is used to bridge a conversion between the first currencyand the second currency.
 26. A system for processing a payment, thesystem comprising: a processor; and a computer readable storage mediumstoring instructions which, when executed by the processor, cause theprocessor to perform operations comprising: transmitting, from a site,to a browser and via a full client browser application programminginterface that defines a protocol for communicating data between thesite and the browser, a request associated with a potential purchase,wherein the request comprises an identification of a payment methodaccepted by the site, wherein the payment method uses a cryptocurrency;and receiving, at the site, a payment according to the payment method,wherein the payment method uses the cryptocurrency according to acryptocurrency payment process initiated based on the requesttransmitted via the full client browser application programminginterface.
 27. The system of claim 26, wherein the cryptocurrencypayment process comprising converting a first currency into a secondcurrency.
 28. The system of claim 26, wherein the cryptocurrency paymentprocess enables a buyer to purchase an item from a seller using a firstcurrency and the seller to be paid in a second currency, and wherein thecryptocurrency is used to bridge a conversion between the first currencyand the second currency.
 29. A method of operating a payment service,the method comprising: receiving, at the payment service, authorizedpayment information associated with a purchase, wherein the authorizedpayment information is generated based on a browser receiving, from asite, and via a full client browser application programming interfacethat defines a protocol for communicating data between the site and thebrowser, a request associated with a potential purchase, wherein therequest comprises an identification of a payment process that utilizesat least in part a cryptocurrency; processing a payment using thecryptocurrency and based on the authorized payment information; andtransmitting, to the browser, confirmation data associated with theprocessing of the payment using the cryptocurrency.
 30. The method ofclaim 29, wherein processing the payment further comprises converting afirst currency received from a buyer into the cryptocurrency.
 31. Themethod of claim 29, wherein processing the payment further comprisesconverting a first currency received from a buyer into thecryptocurrency and converting the cryptocurrency into a second currencyfor paying a seller.
 32. A payment service comprising: a processor; anda computer readable storage medium storing instructions which, whenexecuted by the processor, cause the processor to perform operationscomprising: receiving authorized payment information associated with apurchase, wherein the authorized payment information is generated basedon a browser receiving, from a site, at the browser and via a fullclient browser application programming interface that defines a protocolfor communicating data between the site and the browser, a requestassociated with a potential purchase, wherein the request comprises anidentification of a payment process that utilizes at least in part acryptocurrency; processing a payment using the cryptocurrency and basedon the authorized payment information; and transmitting, to the browser,confirmation data associated with the processing of the payment usingthe cryptocurrency.
 33. The payment service of claim 32, whereinprocessing the payment further comprises converting a first currencyinto the cryptocurrency.
 34. The payment service of claim 32, whereinprocessing the payment further comprises converting a first currencyreceived from a buyer into the cryptocurrency and converting thecryptocurrency into a second currency for paying a seller.
 35. A methodcomprising: receiving, from a site, based on a user interacting with thesite, at a browser and via a full client first application programminginterface that defines a first protocol for communicating data betweenthe browser and the site, a request associated with a purchase;receiving, from the user and via the full client first applicationprogramming interface, a choice of a payment method supported by thesite, wherein the payment method utilized at least in part acryptocurrency and wherein a payment transaction is managed at least inpart by a payment service; and in response to the request and the choiceof the payment method, communicating, from the browser and via a secondapplication programming interface that defines a second protocol forcommunicating data between the browser and the payment service, apayment request event to the payment service, the payment request eventcomprising data for use by the payment service to handle the purchaseutilizing at least in part the cryptocurrency.
 36. The method of claim35, wherein the request comprises information about the purchase and aset of choices of payment methods supported by the site.
 37. The methodof claim 35, wherein a payment process managed by the payment servicemakes a payment in the cryptocurrency.
 38. The method of claim 35,wherein a payment process managed by the payment service makes a paymentby performing at least one of (1) converting from a first currency intothe cryptocurrency and (2) converting from the cryptocurrency into asecond currency.
 39. The method of claim 35, wherein a payment processmanaged by the payment service makes a payment by converting from afirst currency provided by a buyer into the cryptocurrency andconverting from the cryptocurrency into a second currency accepted by aseller.
 40. The method of claim 39, wherein the first currency comprisesone of a first fiat currency and a first cryptocurrency and wherein thesecond currency comprises one of a second fiat currency and a secondcryptocurrency.
 41. A system comprising: a processor; and a computerreadable storage medium storing instructions which, when executed by theprocessor, cause the processor to perform operations comprising:receiving, from a site, based on input from a user indicated a desire tomake a purchase, at a browser and via a full client first applicationprogramming interface that defines a first protocol for communicatingdata between the browser and the site, a payment request associated withthe purchase; receiving, from the user and via the full client firstapplication programming interface, a choice of a payment methodsupported by the site, wherein the payment method utilized at least inpart a cryptocurrency and wherein a payment transaction is managed atleast in part by a payment service; and in response to the paymentrequest and the choice of the payment method, communicating, from thebrowser and via a second application programming interface that definesa second protocol for communicating data between the browser and thepayment service, a payment request event to the payment service, thepayment request event comprising data for use by the payment service tohandle a payment utilizing at least in part the cryptocurrency.
 42. Thesystem of claim 41, wherein the payment request comprises informationabout the purchase and a set of choices of payment methods supported bythe site.
 43. The system of claim 41, wherein the payment transactionmanaged by the payment service makes the payment in the cryptocurrency.44. The system of claim 41, wherein the payment transaction managed bythe payment service makes the payment by performing at least one of (1)converting from a first currency into the cryptocurrency and (2)converting from the cryptocurrency into a second currency.
 45. Thesystem of claim 41, wherein a payment process managed by the paymentservice makes the payment by converting from a first currency providedby a buyer into the cryptocurrency and converting from thecryptocurrency into a second currency accepted by a seller.
 46. Thesystem of claim 45, wherein the first currency comprises one of a firstfiat currency and a first cryptocurrency and wherein the second currencycomprises one of a second fiat currency and a second cryptocurrency. 47.A method comprising: receiving a payment request event at a paymentservice, wherein receiving the payment request event at the paymentservice is based on: a browser receiving, via a full client firstapplication programming interface that defines a first protocol forcommunicating data between the browser and a site, a payment requestfrom the site for payment data associated with a purchase of a product,wherein the payment request is based on input from a user indicating adesire to purchase the product and comprises information about thepurchase; and receiving, from the user and via the full client firstapplication programming interface, a choice of the payment service,wherein the payment request event is received from the browser and via asecond application programming interface that defines a second protocolfor communicating data between the browser and the payment service; andprocessing, at the payment service, the payment request event toinitiate a payment process comprising at least in part use of acryptocurrency.
 48. The method of claim 47, further comprising:transmitting, to the browser, from the payment service and via thesecond application programming interface, authorized paymentinformation, wherein the browser communicates, to the site, theauthorized payment information via the full client first applicationprogramming interface.
 49. The method of claim 47, wherein the paymentrequest comprises information about the purchase and a set of choices ofpayment methods supported by the site.
 50. The method of claim 47,wherein the payment process managed by the payment service makes apayment in the cryptocurrency.
 51. The method of claim 47, wherein thepayment process managed by the payment service makes a payment byperforming at least one of (1) converting from a first currency into thecryptocurrency and (2) converting from the cryptocurrency into a secondcurrency.
 52. The method of claim 47, wherein the payment processmanaged by the payment service makes a payment by converting from afirst currency provided by a buyer into the cryptocurrency andconverting from the cryptocurrency into a second currency accepted by aseller.
 53. The method of claim 52, wherein the first currency comprisesone of a first fiat currency and a first cryptocurrency and wherein thesecond currency comprises one of a second fiat currency and a secondcryptocurrency.
 54. A payment service comprising: a processor; and acomputer readable storage medium storing instructions which, whenexecuted by the processor, cause the processor to perform operationscomprising: receiving a payment request event, wherein receiving thepayment request event is based on: a browser receiving, via a fullclient first application programming interface that defines a firstprotocol for communicating data between the browser and a site, apayment request from the site for payment data associated with apurchase of a product, wherein the payment request is based on inputfrom a user indicating a desire to purchase the product and comprisesinformation about the purchase; and receiving, from the user and via thefull client first application programming interface, a choice of thepayment service, wherein the payment request event is received from thebrowser and via a second application programming interface that definesa second protocol for communicating data between the browser and thepayment service; and processing, at the payment service, the paymentrequest event to initiate a payment process comprising at least in partuse of a cryptocurrency.
 55. The payment service of claim 54, whereinthe payment request comprises information about the purchase and a setof choices of payment methods supported by the site.
 56. The paymentservice of claim 54, wherein the payment process used by the paymentservice makes a payment in the cryptocurrency.
 57. The payment serviceof claim 54, wherein the payment process used by the payment servicemakes a payment by performing at least one of (1) converting from afirst currency into the cryptocurrency and (2) converting from thecryptocurrency into a second currency.
 58. The payment service of claim54, wherein the payment process used by the payment service makes apayment by converting from a first currency provided by a buyer into thecryptocurrency and converting from the cryptocurrency into a secondcurrency accepted by a seller.
 59. The payment service of claim 58,wherein the first currency comprises one of a first fiat currency and afirst cryptocurrency and wherein the second currency comprises one of asecond fiat currency and a second cryptocurrency.
 60. A methodcomprising: transmitting, from a site, based a user interaction with thesite, at a browser and via a full client first application programminginterface that defines a first protocol for communicating data betweenthe browser and the site, a payment request; transmitting, via the fullclient first application programming interface, a choice of a paymentmethod supported by the site, wherein the payment method utilizes atleast in part a cryptocurrency and wherein a payment transaction ismanaged at least in part by a payment service, wherein, in response tothe payment request and the choice of the payment method, a secondapplication programming interface that defines a second protocol forcommunicating data between the browser and the payment servicecommunicates a payment request event to the payment service, the paymentrequest event comprising data for use by the payment service to handle apayment via a payment process that utilizes at least in part thecryptocurrency; and receiving the payment via the payment process. 61.The method of claim 60, wherein the payment request comprisesinformation about a purchase and a set of choices of payment methodssupported by the site.
 62. The method of claim 60, wherein the paymentprocess managed by the payment service makes the payment in thecryptocurrency.
 63. The method of claim 60, wherein the payment processmanaged by the payment service makes the payment by performing at leastone of (1) converting from a first currency into the cryptocurrency and(2) converting from the cryptocurrency into a second currency.
 64. Themethod of claim 60, wherein the payment process managed by the paymentservice makes the payment by converting from a first currency providedby a buyer into the cryptocurrency and converting from thecryptocurrency into a second currency accepted by a seller.
 65. Themethod of claim 64, wherein the first currency comprises one of a firstfiat currency and a first cryptocurrency and wherein the second currencycomprises one of a second fiat currency and a second cryptocurrency. 66.A system comprising: a processor; and a computer readable storage mediumstoring instructions which, when executed by the processor, cause theprocessor to perform operations comprising: transmitting, from a site,based on a user interacting with the site, to a browser and via a fullclient first application programming interface that defines a firstprotocol for communicating data between the browser and the site, apayment request; transmitting, via the full client first applicationprogramming interface, a choice of a payment method supported by thesite, wherein the payment method utilized at least in part acryptocurrency and wherein a payment transaction is managed at least inpart by a payment service, wherein, in response to the payment requestand the choice of the payment method, a second application programminginterface that defines a second protocol for communicating data betweenthe browser and the payment service communicates a payment request eventto the payment service, the payment request event comprising data foruse by the payment service to handle a payment according a paymentprocess that utilizes at least in part the cryptocurrency; and receivingthe payment via the payment process which utilizes at least in part thecryptocurrency.
 67. The system of claim 66, wherein the payment requestcomprises information about a purchase and a set of choices of paymentmethods supported by the site.
 68. The system of claim 66, wherein thepayment process managed by the payment service makes the payment in thecryptocurrency.
 69. The system of claim 66, wherein the payment processmanaged by the payment service makes the payment by performing at leastone of (1) converting from a first currency into the cryptocurrency and(2) converting from the cryptocurrency into a second currency.
 70. Thesystem of claim 66, wherein the payment process managed by the paymentservice makes the payment by converting from a first currency providedby a buyer into the cryptocurrency and converting from thecryptocurrency into a second currency accepted by a seller.
 71. Thesystem of claim 70, wherein the first currency comprises one of a firstfiat currency and a first cryptocurrency and wherein the second currencycomprises one of a second fiat currency and a second cryptocurrency. 72.A method comprising: storing data associated with payments for a user toyield user payment data; receiving, at a software module and based onuser input via a graphical user interface of an application on a device,a payment request associated with a potential payment from theapplication, wherein the payment request comprises information about thepotential payment and wherein the software module is on the device andcomprises a software module application programming interface thatdefines a protocol for communicating data between the application andthe software module; receiving, from the user, an authorizationconfirmation for a payment; receiving, based on the authorizationconfirmation, authorized payment data for the payment from one of thedevice or a network-based entity, wherein at least a portion of theauthorized payment data comprises the user payment data; andtransmitting, according to the software module application programminginterface and to the application, the authorized payment data, whereinthe application on the device can use the authorized payment data in atleast part of a payment process and wherein the payment process uses atleast in part a blockchain-based cryptocurrency.
 73. A devicecomprising: a processor; a software module comprising a software moduleapplication programming interface that defines a protocol forcommunicating data between an application on the device and the softwaremodule; and a computer readable storage medium storing instructionswhich, when executed by the processor, cause the processor to performoperations comprising: receiving, from the application, at the softwaremodule and based on user input via a graphical user interface, a paymentrequest associated with a potential payment, wherein the payment requestcomprises information about the potential payment; receiving, from theuser, an authorization confirmation for a payment; receiving, based onthe authorization confirmation, authorized payment data for the paymentfrom one of the device or a network-based entity, wherein at least aportion of the authorized payment data comprises user payment data froma memory of the device; and transmitting, according to the softwaremodule application programming interface and to the application, theauthorized payment data, wherein the application can use the authorizedpayment data in at least part of a payment process and wherein thepayment process uses at least in part a blockchain-based cryptocurrency.74. A method comprising: transmitting, from an application, to asoftware module on a device, a request associated with a potentialpayment associated with the application, wherein the request comprisesinformation about the potential payment, and wherein the software modulecomprises a software module application programming interface thatdefines a protocol for communicating data between the application andthe software module; and receiving, at the application, from thesoftware module and via the software module application programminginterface, authorized payment data, wherein the software module accessesor receives, based on the request, the authorized payment data for thepotential payment from the device or a network-based entity, wherein theauthorized payment data comprises at least user payment data from amemory of the device and wherein the authorized payment data can be usedin at least part of a blockchain-based cryptocurrency payment process.